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: