Author: reto
Date: Tue Jun 29 13:28:38 2010
New Revision: 958963
URL: http://svn.apache.org/viewvc?rev=958963&view=rev
Log:
be more verbose on exception in ssp
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java?rev=958963&r1=958962&r2=958963&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
Tue Jun 29 13:28:38 2010
@@ -136,11 +136,10 @@ public class ScalaServerPagesRenderlet i
//add the closing ";"
baos.write(byteCloser);
String scriptName =
extractFileName(renderingSpecification);
- logger.debug("compiling script: " + scriptName);
+ logger.debug("getting CompiledScript for: {}",
scriptName);
final byte[] scriptBytes = baos.toByteArray();
final CompiledScript cs =
getCompiledScript(scriptBytes);
- logger.debug("compiled");
final SimpleBindings values = new SimpleBindings();
values.put("res", res);
values.put("context", context);
@@ -156,33 +155,33 @@ public class ScalaServerPagesRenderlet i
execResult = AccessController.doPrivileged(new
PrivilegedExceptionAction<Object>() {
@Override
- public Object run() {
- try {
- return cs.eval(values);
- } catch (ScriptException ex) {
- throw new
RuntimeException(ex);
- }
+ public Object run() throws
ScriptException {
+ return cs.eval(values);
}
});
} catch (PrivilegedActionException ex) {
Exception cause = (Exception) ex.getCause();
+ logger.debug("Exception executing
ScalaServerPage Script", cause);
if (cause instanceof ScriptException) {
throw (ScriptException) cause;
}
- if (cause instanceof RuntimeException) {
- throw (RuntimeException) cause;
- }
throw new RuntimeException(cause);
- }
+ } catch (RuntimeException ex) {
+ logger.debug("RuntimeException executing
ScalaServerPage Script", ex);
+ throw ex;
+ }
if (execResult != null) {
-
os.write(toString(execResult).getBytes("UTF-8"));
+ String sspResult = toString(execResult);
+ logger.debug("executed ssp, result: {} (for
{})", sspResult, scriptName);
+ os.write(sspResult.getBytes("UTF-8"));
}
- logger.debug("executed");
+
os.flush();
logger.debug("flushed");
} catch (MalformedURLException ex) {
throw new WebApplicationException(ex);
} catch (ScriptException ex) {
+ logger.debug("ScriptException rendering
ScalaServerPage: ", ex);
Exception cause = (Exception) ex.getCause();
if (cause != null) {
if (cause instanceof TypeRenderingException) {
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt?rev=958963&r1=958962&r2=958963&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/resources/org/apache/clerezza/platform/typerendering/scalaserverpages/implicit-header.txt
Tue Jun 29 13:28:38 2010
@@ -4,6 +4,7 @@ import org.apache.clerezza.rdf.utils._
import org.apache.clerezza.rdf.scala.utils._
import org.apache.clerezza.rdf.scala.utils.Preamble._
import org.apache.clerezza.platform.typerendering.CallbackRenderer
+import java.io.{PrintWriter, OutputStreamWriter}
import javax.ws.rs.core.UriInfo
val renderer = $("renderer").asInstanceOf[CallbackRenderer]
@@ -20,7 +21,13 @@ def render(resource : GraphNode, mode :
try {
renderer.render(resource, context, mode, baos)
} catch {
- case e: Exception => baos.write(<div
class="exception">{e.toString}</div>.toString.getBytes)
+ case e: Exception => {
+ val exWriter = new java.io.StringWriter
+ val pw = new PrintWriter(exWriter)
+ e.printStackTrace(pw)
+ pw.flush()
+ baos.write(<div
class="exception">{exWriter.toString}</div>.toString.getBytes)
+ }
}
parseNodeSeq(new String(baos.toByteArray, "utf-8"))
}