docs: protected void checkWorkerCompletion(
              HttpServletRequest request,
              IPortletRenderExecutionWorker portletRenderExecutionWorker) {
          if (!portletRenderExecutionWorker.isRetrieved()) {
              final IPortletWindowId portletWindowId =
                      portletRenderExecutionWorker.getPortletWindowId();
              final IPortletWindow portletWindow =
                      this.portletWindowRegistry.getPortletWindow(request, portletWindowId);
              this.logger.warn(
                      "Portlet worker started but never retrieved for {}, worker {}."
                              + " If random portlet fnames it may be users switching tabs before page is done rendering"
                              + " (would see separate log message with java.net.SocketException on socket write)."
                              + " If repeatedly occurring with one portlet fname your theme layout xsl may not be including"
                              + " a portlet present in your layout xml files (see"
                              + " http://jasig.275507.n4.nabble.com/Portlet-worker-started-but-never-retrieved-td4580698.html)",
                      portletWindow,
                      portletRenderExecutionWorker);
  
              try {
                  portletRenderExecutionWorker.get(0);
              } catch (Exception e) {
                  // Ignore exception here, we just want to get this worker to complete
              }
          }
  
          if (!portletRenderExecutionWorker.isComplete()) {
              cancelWorker(request, portletRenderExecutionWorker);
          }
      }