Author: simoneg
Date: Thu Jan 28 18:23:43 2010
New Revision: 904200

URL: http://svn.apache.org/viewvc?rev=904200&view=rev
Log:
Re-enabling exception display

Added:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/PassThruException.java
    
labs/magma/trunk/foundation-website/src/main/resources/META-INF/messages.it.properties
Modified:
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HttpCodeException.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/InternalRedirectException.java
    
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java?rev=904200&r1=904199&r2=904200&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/Dispatch.java
 Thu Jan 28 18:23:43 2010
@@ -24,6 +24,8 @@
 import org.apache.magma.basics.startup.Cycle;
 import org.apache.magma.basics.startup.Startup;
 
+import static org.apache.magma.basics.utils.ExceptionUtils.findInnerException;
+
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintStream;
@@ -157,12 +159,6 @@
                methodsCache.put(key, ret);
                return ret;
        }
-
-       private Throwable findInnerException(Throwable t) {
-               Throwable act = t;
-               while (act.getCause() != null) act = act.getCause();
-               return act;
-       }
        
        protected void handleException(Throwable t, HttpServletResponse resp) {
                try {

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HttpCodeException.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HttpCodeException.java?rev=904200&r1=904199&r2=904200&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HttpCodeException.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/HttpCodeException.java
 Thu Jan 28 18:23:43 2010
@@ -6,7 +6,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 
-public class HttpCodeException extends Error {
+public class HttpCodeException extends Error implements PassThruException {
        
        private int code = 500;
        private Map<String, String> otherHeaders = null;

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/InternalRedirectException.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/InternalRedirectException.java?rev=904200&r1=904199&r2=904200&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/InternalRedirectException.java
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/InternalRedirectException.java
 Thu Jan 28 18:23:43 2010
@@ -1,6 +1,6 @@
 package org.apache.magma.website;
 
-public class InternalRedirectException extends Error {
+public class InternalRedirectException extends Error implements 
PassThruException {
 
        private HtmlProducer producer;
        

Modified: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj?rev=904200&r1=904199&r2=904200&view=diff
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj
 (original)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/NiceExceptionDisplay.aj
 Thu Jan 28 18:23:43 2010
@@ -16,8 +16,11 @@
  */
 package org.apache.magma.website;
 
+import org.apache.magma.basics.utils.ExceptionUtils;
 import org.apache.magma.website.templating.Template;
 import org.apache.magma.website.utils.ExceptionProducer;
+import org.apache.magma.basics.MagmaException;
+
 
 public privileged aspect NiceExceptionDisplay {
 
@@ -28,13 +31,15 @@
                        execution(public HtmlProducer+ WebHandler+.hidden*(..))
                {
                
-               //try {
+               try {
                        return proceed();
-               //} catch (Throwable t) {
-               //      ExceptionProducer ep = new ExceptionProducer();
-               //      ep.setException(t);
-               //      return ep;
-               //}
+               } catch (Throwable t) {
+                       Throwable inner = ExceptionUtils.findInnerException(t);
+                       if (inner instanceof PassThruException) throw new 
MagmaException(t, "Internal");
+                       ExceptionProducer ep = new ExceptionProducer();
+                       ep.setException(t);
+                       return ep;
+               }
                
        }
        /*
@@ -55,12 +60,14 @@
        void around(Template tpl) :
                execution(public void Template+.layout*()) && this(tpl)
        {
-               //try {
+               try {
                        proceed(tpl);
-               //} catch (Throwable t) {
-               //      ExceptionProducer ep = new ExceptionProducer();
-               //      ep.setException(t);
-               //      tpl.always(ep);
-               //}
+               } catch (Throwable t) {
+                       Throwable inner = ExceptionUtils.findInnerException(t);
+                       if (inner instanceof PassThruException) throw new 
MagmaException(t, "Internal");
+                       ExceptionProducer ep = new ExceptionProducer();
+                       ep.setException(t);
+                       tpl.always(ep);
+               }
        }
 }

Added: 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/PassThruException.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/PassThruException.java?rev=904200&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/PassThruException.java
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/java/org/apache/magma/website/PassThruException.java
 Thu Jan 28 18:23:43 2010
@@ -0,0 +1,13 @@
+package org.apache.magma.website;
+
+
+/**
+ * Marker interface for exceptions that must not be handled by 
+ * web components cause they carry a value or meaning for the main servlet,
+ * like a redirect etc..
+ *
+ * @author Simone Gianni <[email protected]>
+ */
+public interface PassThruException {
+
+}

Added: 
labs/magma/trunk/foundation-website/src/main/resources/META-INF/messages.it.properties
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-website/src/main/resources/META-INF/messages.it.properties?rev=904200&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-website/src/main/resources/META-INF/messages.it.properties
 (added)
+++ 
labs/magma/trunk/foundation-website/src/main/resources/META-INF/messages.it.properties
 Thu Jan 28 18:23:43 2010
@@ -0,0 +1,2 @@
+anerrorhasoccurred=Si รจ verificato un errore
+weareworkingtoresolvetheproblem+14=Abbiamo registrato l'errore al fine di 
poterlo correggere.
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to