code: @SuppressWarnings("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE")
      @JavaScriptMethod public final void start() {
          Ancestor ancestor = Stapler.getCurrentRequest().findAncestor(BoundObjectTable.class);
          if (ancestor == null) {
              throw new IllegalStateException("no BoundObjectTable");
          }
          boundObjectTable = ((BoundObjectTable) ancestor.getObject()).getTable();
          boundId = ancestor.getNextToken(0);
          LOG.log(Level.FINE, "starting rendering {0} at {1}", new Object[] {uri, boundId});
          final ExecutorService executorService = executorService();
          executorService.submit(new Runnable() {
              @Override public void run() {
                  lastNewsTime = start = System.currentTimeMillis();
                  setCurrentRequest(request);
                  SecurityContext orig = SecurityContextHolder.getContext();
                  try {
                      SecurityContextHolder.setContext(securityContext);
                      compute();
                      if (status != CANCELED && status != ERROR) {
                          status = 1;
                      }
                  } catch (Exception x) {
                      LOG.log(Level.WARNING, "failed to compute " + uri, x);
                      status = ERROR;
                  } finally {
                      SecurityContextHolder.setContext(orig);
                      setCurrentRequest(null);
                      LOG.log(Level.FINE, "{0} finished in {1}msec with status {2}", new Object[] {uri, System.currentTimeMillis() - start, status});
                  }
                  if (executorService instanceof ScheduledExecutorService) {
                      ((ScheduledExecutorService) executorService).schedule(new Runnable() {
                          @Override public void run() {
                              LOG.log(Level.FINE, "some time has elapsed since {0} finished, so releasing", boundId);
                              release();
                          }
                      }, timeout() /* add some grace period for browser/network overhead */ * 2, TimeUnit.MILLISECONDS);
                  }
              }
          });
      }
docs: For internal use.