Author: manaRH
Date: 2013-02-19 11:27:26 -0500 (Tue, 19 Feb 2013)
New Revision: 15414

Added:
   
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamExceptionHandlerFactory.java
Modified:
   
branches/enterprise/WFK-2_1/jboss-seam/src/main/resources/META-INF/faces-config.xml
Log:
readd JBSEAM-5045

Added: 
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamExceptionHandlerFactory.java
===================================================================
--- 
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamExceptionHandlerFactory.java
                            (rev 0)
+++ 
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamExceptionHandlerFactory.java
    2013-02-19 16:27:26 UTC (rev 15414)
@@ -0,0 +1,49 @@
+package org.jboss.seam.jsf;
+
+import javax.faces.context.ExceptionHandler;
+import javax.faces.context.ExceptionHandlerFactory;
+import javax.faces.context.FacesContext;
+
+import org.jboss.seam.web.ExceptionFilter;
+
+import com.sun.faces.application.ApplicationAssociate;
+import com.sun.faces.context.AjaxExceptionHandlerImpl;
+import com.sun.faces.context.ExceptionHandlerImpl;
+
+
+
+/**
+ * Factory not to be used AjaxExceptionHandlerImpl class and 
+ * always be an exception to be thrown by capturad ExceptionFilter
+ * 
+ * @see AjaxExceptionHandlerImpl
+ * @see ExceptionFilter  
+ * @author Tiago Peruzzo
+ * 
+ */
+public class SeamExceptionHandlerFactory extends ExceptionHandlerFactory {
+
+       private ApplicationAssociate associate;
+
+
+       @Override
+    public ExceptionHandler getExceptionHandler() {
+        FacesContext fc = FacesContext.getCurrentInstance();
+        ApplicationAssociate associate = getAssociate(fc);
+        return new ExceptionHandlerImpl(((associate != null) ? 
associate.isErrorPagePresent() : Boolean.TRUE));
+    }
+
+
+    // --------------------------------------------------------- Private 
Methods
+
+    private ApplicationAssociate getAssociate(FacesContext ctx) {
+        if (associate == null) {
+            associate = ApplicationAssociate.getCurrentInstance();
+            if (associate == null) {
+                associate = 
ApplicationAssociate.getInstance(ctx.getExternalContext());
+            }
+        }
+        return associate;
+    }
+       
+}

Modified: 
branches/enterprise/WFK-2_1/jboss-seam/src/main/resources/META-INF/faces-config.xml
===================================================================
--- 
branches/enterprise/WFK-2_1/jboss-seam/src/main/resources/META-INF/faces-config.xml
 2013-02-19 16:27:13 UTC (rev 15413)
+++ 
branches/enterprise/WFK-2_1/jboss-seam/src/main/resources/META-INF/faces-config.xml
 2013-02-19 16:27:26 UTC (rev 15414)
@@ -6,6 +6,7 @@
 
    <factory>
       
<application-factory>org.jboss.seam.jsf.SeamApplicationFactory</application-factory>
+      
<exception-handler-factory>org.jboss.seam.jsf.SeamExceptionHandlerFactory</exception-handler-factory>
    </factory>
 
    <application>

_______________________________________________
seam-commits mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/seam-commits

Reply via email to