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/03/17 22:28:53 UTC

svn commit: r924501 - /myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java

Author: lu4242
Date: Wed Mar 17 21:28:53 2010
New Revision: 924501

URL: http://svn.apache.org/viewvc?rev=924501&view=rev
Log:
MYFACES-2611 UIComponentBase.getFacetsAndChildren() must not access the component's facets and children directly

Modified:
    myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java

Modified: myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java?rev=924501&r1=924500&r2=924501&view=diff
==============================================================================
--- myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java (original)
+++ myfaces/core/branches/1.2.x/api/src/main/java/javax/faces/component/UIComponentBase.java Wed Mar 17 21:28:53 2010
@@ -481,38 +481,24 @@ public abstract class UIComponentBase
 
     public Iterator<UIComponent> getFacetsAndChildren()
     {
-        if (_facetMap == null)
+        // we can't use _facetMap and _childrenList here directly,
+        // because some component implementation could keep their 
+        // own properties for facets and children and just override
+        // getFacets() and getChildren() (e.g. seen in PrimeFaces).
+        // See MYFACES-2611 for details.
+        if (getFacetCount() == 0)
         {
-            if (_childrenList == null)
+            if (getChildCount() == 0)
                 return _EMPTY_UICOMPONENT_ITERATOR;
 
-            if (_childrenList.size() == 0)
-                return _EMPTY_UICOMPONENT_ITERATOR;
-            
-            return _childrenList.iterator();
+            return getChildren().iterator();
         }
         else
         {
-            if (_facetMap.size() == 0)
-            {
-                if (_childrenList == null)
-                    return _EMPTY_UICOMPONENT_ITERATOR;
-              
-                if (_childrenList.size() == 0)
-                    return _EMPTY_UICOMPONENT_ITERATOR;
-            
-                return _childrenList.iterator();  
-            }
-            else
-            {
-                if (_childrenList == null)
-                    return _facetMap.values().iterator();
-              
-                if (_childrenList.size() == 0)
-                    return _facetMap.values().iterator();
-              
-                return new _FacetsAndChildrenIterator<UIComponent>(_facetMap, _childrenList);                            
-            }
+            if (getChildCount() == 0)
+                return getFacets().values().iterator();
+
+            return new _FacetsAndChildrenIterator(getFacets(), getChildren());
         }
     }