Both child and facet list should be checked while moving an existing child
--------------------------------------------------------------------------

                 Key: MYFACES-3175
                 URL: https://issues.apache.org/jira/browse/MYFACES-3175
             Project: MyFaces Core
          Issue Type: Bug
          Components: General
    Affects Versions: 2.0.7
            Reporter: Ivan


 Per the Java doc of 
http://javaserverfaces.java.net/nonav/docs/2.0/javadocs/javax/faces/component/UIComponent.html#getChildren(),
 if I set an existing child in the returned children list, the target child 
should be removed from its previous parent in both children and facet list. 
While currently MyFaces seems only remove from the children list. And for the 
facet map, now it only remove from the facet map. Is it a bug for MyFaces ?
    --->
getChildren

public abstract List<UIComponent> getChildren()

Return a mutable List representing the child UIComponents associated with this 
component. The returned implementation must support all of the standard and 
optional List methods, plus support the following additional requirements:

The List implementation must implement the java.io.Serializable interface.
Any attempt to add a null must throw a NullPointerException
Any attempt to add an object that does not implement UIComponent must throw a 
ClassCastException.
Whenever a new child component is added, the parent property of the child must 
be set to this component instance. If the parent property of the child was 
already non-null, the child must first be removed from its previous parent 
(where it may have been either a child or a facet).
Whenever an existing child component is removed, the parent property of the 
child must be set to null.

After the child component has been added to the view, if the following 
condition is not met:

FacesContext.isPostback() returns true and FacesContext.getCurrentPhaseId() 
returns PhaseId.RESTORE_VIEW

Application.publishEvent(javax.faces.context.FacesContext, java.lang.Class, 
java.lang.Object) must be called, passing PostAddToViewEvent.class as the first 
argument and the newly added component as the second argument.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to