You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by re...@apache.org on 2010/06/29 15:28:38 UTC

svn commit: r958963 - in /incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main: java/org/apache/clerezza/platform/typerendering/scalaserverpages/ resources/org/apache/clerezza/platform...

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"))
 }