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/02/08 23:44:08 UTC
svn commit: r1068654 -
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
Author: lu4242
Date: Tue Feb 8 22:44:08 2011
New Revision: 1068654
URL: http://svn.apache.org/viewvc?rev=1068654&view=rev
Log:
MYFACES-3037 Children of iterating components receive multiple PostRestoreStateEvents
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java?rev=1068654&r1=1068653&r2=1068654&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java Tue Feb 8 22:44:08 2011
@@ -73,6 +73,8 @@ public class DefaultRestoreViewSupport i
@JSFWebConfigParam(defaultValue = "true", since = "2.0.2")
private static final String CHECKED_VIEWID_CACHE_ENABLED_ATTRIBUTE = "org.apache.myfaces.CHECKED_VIEWID_CACHE_ENABLED";
private static final boolean CHECKED_VIEWID_CACHE_ENABLED_DEFAULT = true;
+
+ private static final String SKIP_ITERATION_HINT = "javax.faces.visit.SKIP_ITERATION";
private Map<String, Boolean> _checkedViewIdMap = null;
private Boolean _checkedViewIdCacheEnabled = null;
@@ -81,8 +83,14 @@ public class DefaultRestoreViewSupport i
{
// JSF 2.0: Old hack related to t:aliasBean was fixed defining a event that traverse
// whole tree and let components to override UIComponent.processEvent() method to include it.
+
+ // TODO: Remove this hack and use VisitHints.SKIP_ITERATION in JSF 2.1
+ facesContext.getAttributes().put(SKIP_ITERATION_HINT, Boolean.TRUE);
+
component.visitTree(VisitContext.createVisitContext(facesContext), new RestoreStateCallback());
+ facesContext.getAttributes().remove(SKIP_ITERATION_HINT);
+
/*
ValueExpression binding = component.getValueExpression("binding");
if (binding != null)