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 2010/04/23 22:13:51 UTC

svn commit: r937498 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java

Author: lu4242
Date: Fri Apr 23 20:13:51 2010
New Revision: 937498

URL: http://svn.apache.org/viewvc?rev=937498&view=rev
Log:
MYFACES-2670 Components on facets are not removed programatically by PSS algorithm 

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java?rev=937498&r1=937497&r2=937498&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java Fri Apr 23 20:13:51 2010
@@ -50,6 +50,7 @@ import javax.faces.view.ViewMetadata;
 
 import org.apache.myfaces.shared_impl.renderkit.RendererUtils;
 import org.apache.myfaces.shared_impl.util.ClassUtils;
+import org.apache.myfaces.view.facelets.tag.jsf.ComponentSupport;
 
 /**
  * This class implements partial state saving feature when facelets
@@ -223,7 +224,22 @@ public class DefaultFaceletsStateManagem
                                 {
                                     if (target.getParent() != null)
                                     {
-                                        target.getParent().getChildren().remove(target);
+                                        if (!target.getParent().getChildren().remove(target))
+                                        {
+                                            String key = null;
+                                            for (Map.Entry<String, UIComponent> entry : target.getParent().getFacets().entrySet())
+                                            {
+                                                if (entry.getValue()==target)
+                                                {
+                                                    key = entry.getKey();
+                                                    break;
+                                                }
+                                            }
+                                            if (key != null)
+                                            {
+                                                target.getParent().getFacets().remove(key);
+                                            }
+                                        }
                                     }
                                 }
                             });