protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { req = new HttpServletRequestWrapper(req); ClassLoader old = Thread.currentThread().getContextClassLoader(); WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); try { Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); workContext.setHeader("fabric3.httpRequest", req); workContext.setHeader("fabric3.httpResponse", res); servlet.service(req, res); } catch (ServletException se) { se.printStackTrace(); throw se; } catch (IOException ie) { ie.printStackTrace(); throw ie; } catch (Throwable t) { t.printStackTrace(); throw new ServletException(t); } finally { Thread.currentThread().setContextClassLoader(old); workContext.reset(); } }
Object invoke(Method method, Object[] args) throws MBeanException, ReflectionException { WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); try { T instance = objectFactory.getInstance(); return method.invoke(instance, args); } catch (ObjectCreationException e) { throw new ReflectionException(e); } catch (IllegalAccessException e) { throw new AssertionError(e); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); cause.printStackTrace(); if (cause instanceof Exception) { throw new MBeanException((Exception) e.getCause()); } else { throw new ReflectionException(e); } } finally { workContext.reset(); } } }
public void run() { WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); try { workContext.setSubject(subject); workContext.addHeaders(headers); workContext.addCallbackReferences(stack); delegate.run(); } finally { workContext.reset(); } } }
public T call() throws Exception { WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); try { workContext.setSubject(subject); workContext.addHeaders(headers); workContext.addCallbackReferences(stack); return delegate.call(); } finally { workContext.reset(); } } }
workContext.reset();
public long nextInterval() { WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); Object instance = null; try { instance = component.getInstance(); return (Long) method.invoke(instance); } catch (InstanceLifecycleException e) { monitor.executeError(e); throw new InvocationRuntimeException(e); } catch (InvocationTargetException e) { monitor.executeError(e); throw new InvocationRuntimeException(e); } catch (IllegalAccessException e) { monitor.executeError(e); throw new InvocationRuntimeException(e); } finally { if (instance != null) { try { component.releaseInstance(instance); } catch (InstanceDestructionException e) { monitor.executeError(e); } } workContext.reset(); } }
monitor.disposeError(e); workContext.reset();
public void run() { WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); workContext.addCallbackReferences(stack); workContext.addHeaders(headers); workContext.setSubject(subject); Message message = MessageCache.getAndResetMessage(); message.setBody(payload); message.setWorkContext(workContext); Message response = next.invoke(message); if (response.isFault()) { // log the exception monitor.onError((Throwable) response.getBody()); } message.reset(); workContext.reset(); }
public boolean onUpload(String fileName, String contentType, InputStream uploadData) throws Exception { Object[] args = new Object[]{fileName, uploadData}; WorkContext workContext = WorkContextCache.getAndResetThreadWorkContext(); Message input = MessageCache.getAndResetMessage(); try { // set the header value for the request context workContext.setHeader(FtpConstants.HEADER_CONTENT_TYPE, contentType); input.setWorkContext(workContext); input.setBody(args); Message response = getInterceptor().invoke(input); if (response.isFault()) { monitor.fileProcessingError(servicePath, (Throwable) response.getBody()); input.reset(); return false; } return true; } finally { input.reset(); workContext.reset(); } }