[ 
https://issues.apache.org/jira/browse/MYFACES-3739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13693981#comment-13693981
 ] 

Leonardo Uribe commented on MYFACES-3739:
-----------------------------------------

Really it is expected to have more than one reference to the same resource in 
those cases.

The problem is the complexity involved in do a check for uniqueness in that 
place. If there is such check, we need to do some calculations and comparisons, 
and at the end, more CPU will be used, which can lead to a degradation in 
performance.

The algorithm "as is" will work better if we serialize the classes. Other 
option that comes to my mind is use the string representation of the class 
name. It could save some bytes, because after taking a look about what's being 
serialized, the class name is included too. I think it is a good idea to change 
a bit that part.

What's important is have the confirmation that the fix proposed solves the 
problem. Thanks for check it. I'll commit the updated solution soon.
                
> @ResourceDependency annotation + JSF 1.2 state saving + c:if (dynamic 
> section) creates components on each click (UIViewRoot grows)
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3739
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3739
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>    Affects Versions: 2.1.12
>         Environment: myfaces 2.1.12
> Tomcat 6.0.36
>            Reporter: Andrei Zhemaituk
>         Attachments: MYFACES-3739-1.patch
>
>
> The issue was initially reported against RichFaces: 
> https://issues.jboss.org/browse/RF-13025
> But it does not look like it is anything wrong with RichFaces here.
> The issue is reproducible with pure myfaces when partial state saving is 
> turned OFF e.g. with the following code (every second click on "Toggle" 
> button causes new UIOutput element to be inserted to the view tree):
> {code}
>   <h:form>
>     <h:commandButton value="Toggle" action="#{bean.togglePanelShown}">
>       <f:ajax execute="@this" render="group"/>
>     </h:commandButton>
>     <h:panelGroup id="group">
>       <c:if test="#{bean.panelShown}">
>         <!-- Any component with @ResourceDependency annotation. -->
>         <custom:componentWithResourceDependency/>
>       </c:if>
>     </h:panelGroup>
>   </h:form>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to