protected void processRenderingJob(RenderingJob job, boolean parallelOnly) { try { if (parallelOnly || job.getTimeout() > 0) { workMonitor.process(job); } else { job.execute(); } } catch (Exception e1) { log.error("render() failed: " + e1.toString(), e1); job.getFragment().overrideRenderedContent(e1.getLocalizedMessage()); } }
PortletWindow window = job.getWindow(); log.warn("Portlet Rendering job to be interrupted by timeout (" + job.getTimeout() + "ms)" + (window != null ? ": "+window.getId().getStringId() : "")); PortletContent content = job.getPortletContent(); Thread worker = (Thread) job.getWorkerAttribute(WORKER_THREAD_ATTR); WorkItem workItem = (WorkItem) job.getWorkerAttribute(COMMONJ_WORK_ITEM_ATTR);
public void run() { if (jobWorksMonitorEnabled || interruptOnTimeout) { this.job.setWorkerAttribute(WORKER_THREAD_ATTR, Thread.currentThread()); } this.job.run(); }
public void killJob(WorkerImpl worker, RenderingJob job) { try { if (log.isWarnEnabled()) { PortletWindow window = job.getWindow(); PortletWindowID windowId = (null != window ? window.getId() : null); log.warn("Portlet Rendering job to be interrupted by timeout (" + job.getTimeout() + "ms): " + windowId.getStringId()); } PortletContent content = job.getPortletContent(); synchronized (content) { if (!content.isComplete()) { worker.interrupt(); content.wait(); } } } catch (Exception e) { log.error("Exceptiong during job killing.", e); } } }
job.execute(); callback.cleanup(job.getWindow().getPortletRequestContext().getServletContext(), job.getRequest(), job.getResponse()); job.execute();
WorkItem workItem = (WorkItem) job.getWorkerAttribute(COMMONJ_WORK_ITEM_ATTR); int status = WorkEvent.WORK_ACCEPTED; boolean isTimeout = job.isTimeout(); PortletContent content = job.getPortletContent(); Thread worker = (Thread) job.getWorkerAttribute(WORKER_THREAD_ATTR);
job.setWorkerAttribute(RenderingJob.ACCESS_CONTROL_CONTEXT_WORKER_ATTR, context); if (job.getTimeout() > 0)
log.debug("Processing job for window :" + ((RenderingJob)job).getWindow().getId());
/** * Wait for all rendering jobs in the collection to finish successfully or otherwise. * @param renderingJobs the Collection of rendering job objects to wait for. */ public void waitForRenderingJobs(List<RenderingJob> renderingJobs) { try { for (RenderingJob job : renderingJobs) { PortletContent portletContent = job.getPortletContent(); synchronized (portletContent) { if (!portletContent.isComplete()) { portletContent.wait(); } } } } catch (Exception e) { log.error("Exception during synchronizing all portlet rendering jobs.", e); } }
if (oldJob != null) jobTimeout = oldJob.getTimeout();
PortletContent portletContent = job.getPortletContent();