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)