docs: @Override
      public void doPortletServeResource(
              IPortletWindowId portletWindowId,
              HttpServletRequest request,
              HttpServletResponse response) {
          final long timeout = getPortletResourceTimeout(portletWindowId, request);
  
          final IPortletExecutionWorker<Long> resourceWorker =
                  this.portletWorkerFactory.createResourceWorker(request, response, portletWindowId);
          resourceWorker.submit();
  
          try {
              resourceWorker.get(timeout);
          } catch (Exception e) {
              // Log the exception but not this thread's stacktrace. The portlet worker has already
              // logged its stack trace
              this.logger.error(
                      "resource worker {} failed with exception {}", resourceWorker, e.toString());
              // render generic serveResource error
              try {
                  if (!response.isCommitted()) {
                      response.sendError(
                              HttpServletResponse.SC_SERVICE_UNAVAILABLE, "resource unavailable");
                  }
              } catch (IOException e1) {
                  logger.error(
                          "caught IOException trying to send error response for failed resource worker",
                          e);
              }
          }
  
          // If the worker is still running add it to the hung-workers queue
          if (!resourceWorker.isComplete()) {
              cancelWorker(request, resourceWorker);
          }
      }