/** * Returns a message composed of the information about the occurred error. * @return */ public String getComposedMessage() { StringBuilder sb = new StringBuilder(); sb.append("Error occurred in " + renderingSpecification.toString() + " "); if (getLineNumber() != -1 || getColumnNumber() != -1) { sb.append("at line number " + getLineNumber() + " "); sb.append("at column number " + getColumnNumber() + ": "); } sb.append(getMessage() + "\n"); return sb.toString(); }
@Override public void render(GraphNode res, GraphNode context, Map<String, Object> sharedRenderingValues, CallbackRenderer callbackRenderer, URI renderingSpecification, String mode, MediaType mediaType, RequestProperties requestProperties, OutputStream os) throws IOException { try { logger.debug("ScalaServerPagesRenderlet rendering"); final char[] scriptBytes = getScriptChars(renderingSpecification); final Renderlet cs = getCompiledRenderlet(scriptBytes); cs.render(res, context, sharedRenderingValues, callbackRenderer, renderingSpecification, mode, mediaType, requestProperties, os); //os.flush(); //logger.debug("flushed"); } catch (MalformedURLException ex) { throw new WebApplicationException(ex); } catch (CompileErrorsException ex) { //logger.debug("ScriptException rendering ScalaServerPage: ", ex); logger.error("Error compiling "+renderingSpecification+": "+ex.getMessage()); Exception cause = (Exception) ex.getCause(); if (cause != null) { if (cause instanceof TypeRenderingException) { throw (TypeRenderingException) cause; } throw new RenderingException(cause, renderingSpecification, res, context); } throw new RenderingspecificationException(ex.getMessage(), renderingSpecification, 0,0, res, context); } }
@Override public GraphNode getExceptionGraphNode() { GraphNode result = new GraphNode(new BlankNode(), new SimpleGraph()); result.addProperty(RDF.type, TYPERENDERING.Exception); LiteralFactory factory = LiteralFactory.getInstance(); result.addProperty(TYPERENDERING.errorSource, new IRI(renderingSpecification.toString())); if (lineNumber != -1) { result.addProperty(TYPERENDERING.line, factory.createTypedLiteral(new Integer(lineNumber))); } if (columnNumber != -1) { result.addProperty(TYPERENDERING.column, factory.createTypedLiteral(Integer.valueOf(columnNumber))); } result.addProperty(TYPERENDERING.message, new PlainLiteralImpl(getMessage())); return result; }