You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/07/01 01:52:51 UTC

svn commit: r1141757 - /myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java

Author: lu4242
Date: Thu Jun 30 23:52:50 2011
New Revision: 1141757

URL: http://svn.apache.org/viewvc?rev=1141757&view=rev
Log:
MYFACES-3199 Handling AbortProcessingException is unconsistent

Modified:
    myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java

Modified: myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java?rev=1141757&r1=1141756&r2=1141757&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java (original)
+++ myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/component/UIViewRoot.java Thu Jun 30 23:52:50 2011
@@ -35,11 +35,9 @@ import javax.el.MethodExpression;
 import javax.el.ValueExpression;
 import javax.faces.FactoryFinder;
 import javax.faces.application.ProjectStage;
-import javax.faces.context.ExternalContext;
 import javax.faces.context.FacesContext;
 import javax.faces.context.PartialViewContext;
 import javax.faces.event.AbortProcessingException;
-import javax.faces.event.ActionEvent;
 import javax.faces.event.ExceptionQueuedEvent;
 import javax.faces.event.ExceptionQueuedEventContext;
 import javax.faces.event.FacesEvent;
@@ -267,18 +265,20 @@ public class UIViewRoot extends UICompon
         
         int loops = 0;
         int maxLoops = 15;
+        boolean continueProcessing = true;
         do
         {
             // First broadcast events that have been queued for PhaseId.ANY_PHASE.
-            if (_broadcastAll(context, events.getAnyPhase()))
+            continueProcessing = _broadcastAll(context, events.getAnyPhase());
+            if (continueProcessing)
             {
-                _broadcastAll(context, events.getOnPhase());
+                continueProcessing = _broadcastAll(context, events.getOnPhase());
             }
 
             events = _getEvents(phaseId);
             loops++;
             
-        } while (events.hasMoreEvents() && loops < maxLoops);
+        } while (events.hasMoreEvents() && loops < maxLoops && continueProcessing);
         
         if (loops == maxLoops && events.hasMoreEvents()) {
             // broadcast reach maxLoops - probably a infinitive recursion: