You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mc...@apache.org on 2009/09/17 17:13:49 UTC

svn commit: r816228 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle: LifecycleImpl.java PhaseListenerManager.java

Author: mconcini
Date: Thu Sep 17 15:13:49 2009
New Revision: 816228

URL: http://svn.apache.org/viewvc?rev=816228&view=rev
Log:
MYFACES-2355 - need to account for queued exceptions and the 1.2 compatible exception handler during render phase. 

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleImpl.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/PhaseListenerManager.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleImpl.java?rev=816228&r1=816227&r2=816228&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/LifecycleImpl.java Thu Sep 17 15:13:49 2009
@@ -34,6 +34,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.util.DebugUtils;
 import org.apache.myfaces.config.FacesConfigurator;
+import org.apache.myfaces.shared_impl.util.ClassUtils;
 import org.apache.myfaces.shared_impl.webapp.webxml.WebXml;
 
 /**
@@ -184,8 +185,8 @@
             {
                 return;
             }
-            if(renderResponse)
-            renderExecutor.execute(facesContext);
+            if(renderResponse || facesContext.getExceptionHandler().getClass().equals(ClassUtils.classForName("javax.faces.webapp.PreJsf2ExceptionHandlerFactory$PreJsf2ExceptionHandlerImpl")))
+                renderExecutor.execute(facesContext);
         }
         
         catch (Throwable e) {

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/PhaseListenerManager.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/PhaseListenerManager.java?rev=816228&r1=816227&r2=816228&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/PhaseListenerManager.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/PhaseListenerManager.java Thu Sep 17 15:13:49 2009
@@ -20,6 +20,7 @@
 package org.apache.myfaces.lifecycle;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import javax.faces.context.FacesContext;
 import javax.faces.event.ExceptionQueuedEvent;
@@ -87,6 +88,12 @@
                 }
             }
         }
+        
+        if( facesContext.getExceptionHandler().getUnhandledExceptionQueuedEvents().iterator().hasNext())
+        {
+            return false;   //an exception was queued, do not render so we can go to the error page 
+        }
+        
         return true; //if this is the render phase, render the response
     }