[ 
https://issues.apache.org/jira/browse/TRINIDAD-1611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12771639#action_12771639
 ] 

Martin Koci commented on TRINIDAD-1611:
---------------------------------------

With mojarra 2.0.1 and:
<tr:document
 xmlns="http://www.w3.org/1999/xhtml";
 xmlns:f="http://java.sun.com/jsf/core";
 xmlns:h="http://java.sun.com/jsf/html";
 xmlns:tr="http://myfaces.apache.org/trinidad";
 title="TESTER of Scripts">
   <h:outputScript target="body" name="myCoolBody.js"/>
</tr:document> 

a ConcurrentModificationException is thrown:
java.util.ConcurrentModificationException
        java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
        java.util.AbstractList$Itr.next(AbstractList.java:343)
        
org.apache.myfaces.trinidad.component.UIXComponentBase._publishPostAddToViewEvent(UIXComponentBase.java:1147)
        
org.apache.myfaces.trinidad.component.UIXComponentBase.setParent(UIXComponentBase.java:421)
        
javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2439)
        
javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2411)
        
com.sun.faces.facelets.tag.jsf.ComponentSupport.addComponent(ComponentSupport.java:346)
        
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:220)
        
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        
com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
        
com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
        
com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
        
com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:715)

Debugging shows that script renderer reacts to PostAddToViewEvent and does some 
nasty modifications on children. I don't know yet where the problem is (in 
trinidad or in RI) but iterating over defensive copy of children list in 
_publishPostAddToViewEvent solves this problem.


> implement new setParent() behavior on UIXComponent base in order to trigger 
> PostAddToViewEvent(s)
> -------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1611
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1611
>             Project: MyFaces Trinidad
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0-core
>            Reporter: Matthias Weßendorf
>            Assignee: Matthias Weßendorf
>         Attachments: TRINIDAD-1611.patch
>
>
> the base-task can only work when we change our UIXComponentBase's setParent() 
> to trigger the new "PostAddToViewEvent" event.
> As this event subsystem doesn't come for free (in terms of PERF
> costs), I will try to get some numbers on the inclusion of the
> behavior.
> However, the benefit of the "relocatable resources" feature is that we
> don't need to worry about "duplicated" resources, as something like
> this:
> ...
>  <h:outputScript target="body" name="fooBody.js"/>
>  <h:outputScript target="body" name="fooBody.js"/>
>  <h:outputScript target="body" name="fooBody.js"/>
> ...
> Is only added once to the particular *target*...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to