public void render(final RenderBridge requestBridge) throws Throwable { // Collection<CompilationError> errors = null; try { boot(); } catch (CompilationException e) { errors = e.getErrors(); } // if (errors == null || errors.isEmpty()) { // if (errors != null) { requestBridge.purgeSession(); } // try { TrimmingException.invoke( new TrimmingException.Callback() { public void call() throws Throwable { try { runtime.getContext().invoke(requestBridge); } catch (ApplicationException e) { throw e.getCause(); } } }); } catch (TrimmingException e) { if (config.isProd()) { throw e.getSource(); } else { StringWriter writer = new StringWriter(); PrintWriter printer = new PrintWriter(writer); renderThrowable(printer, e); requestBridge.setResponse(Response.ok(writer.getBuffer())); } } finally { requestBridge.close(); } } else { try { StringWriter writer = new StringWriter(); PrintWriter printer = new PrintWriter(writer); renderErrors(printer, errors); requestBridge.setResponse(Response.ok(writer.getBuffer())); } finally { requestBridge.close(); } } }
public void processAction(final ActionBridge requestBridge) throws Throwable { try { TrimmingException.invoke( new TrimmingException.Callback() { public void call() throws Throwable { try { runtime.getContext().invoke(requestBridge); } catch (ApplicationException e) { // For now we do that until we find something better specially for the dev mode throw e.getCause(); } } }); } catch (TrimmingException e) { throw e.getSource(); } finally { requestBridge.close(); } }