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


Reply via email to