[
https://issues.apache.org/jira/browse/MYFACES-3867?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13930670#comment-13930670
]
Leonardo Uribe commented on MYFACES-3867:
-----------------------------------------
Thanks for the description of the problem. That changes everything I have
thought about, but I'm glad we have discovered a dormant bug inside c:forEach
(I assume the probability of an user could find it again is pretty low).
It seems the state of one page is being leaked to the other page, probably
because the way how are you navigating. For example, if you have the same
UIViewRoot instance, this component will hold the same attributes, and in that
sense the same FaceletState object. So the component structure will change but
the associated FaceletState is not, causing the problem described.
The solution is do something in the navigation to reset FaceletState. I can
imagine a couple of solutions, but how are you doing the navigation? I would
like to check it out before anything else.
> SectionUniqueIdCounter.startUniqueIdSection(String base) does not generate
> prefix correctly
> -------------------------------------------------------------------------------------------
>
> Key: MYFACES-3867
> URL: https://issues.apache.org/jira/browse/MYFACES-3867
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.2.1
> Reporter: Gonçalo Manuel Cruchinho
> Assignee: Leonardo Uribe
>
> The following error occurs during the restore view phase when working with
> ajax and re-rendering just a fraction of the page.
> This occurs with the latest version of the trunk. Unfortunately a test case
> for this problem was not possible due to the complexity of the page, which
> involves multiple composite components, <c:if> conditions and <c:forEach>
> tags.
> The stack trace follows.
> java.lang.ClassCastException: java.lang.Boolean cannot be cast to
> org.apache.myfaces.view.facelets.tag.jstl.core.IterationState
> at
> org.apache.myfaces.view.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:210)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:67)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:257)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.applyCompositeComponent(DefaultFacelet.java:602)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.applyCompositeComponent(DefaultFaceletContext.java:778)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyCompositeComponentFacelet(CompositeComponentResourceTagHandler.java:443)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyNextHandler(CompositeComponentResourceTagHandler.java:216)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.jstl.core.IfHandler.apply(IfHandler.java:126)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:67)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:257)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.applyCompositeComponent(DefaultFacelet.java:602)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.applyCompositeComponent(DefaultFaceletContext.java:778)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyCompositeComponentFacelet(CompositeComponentResourceTagHandler.java:443)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyNextHandler(CompositeComponentResourceTagHandler.java:216)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:161)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:514)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:568)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:546)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:240)
> at
> org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:226)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:67)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:257)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.applyCompositeComponent(DefaultFacelet.java:602)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.applyCompositeComponent(DefaultFaceletContext.java:778)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyCompositeComponentFacelet(CompositeComponentResourceTagHandler.java:443)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyNextHandler(CompositeComponentResourceTagHandler.java:216)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:161)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:514)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:568)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:546)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:240)
> at
> org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:226)
> at
> org.apache.myfaces.view.facelets.tag.jstl.core.ForEachHandler.applyFirstTime(ForEachHandler.java:382)
> at
> org.apache.myfaces.view.facelets.tag.jstl.core.ForEachHandler.apply(ForEachHandler.java:229)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:67)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:257)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.applyCompositeComponent(DefaultFacelet.java:602)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.applyCompositeComponent(DefaultFaceletContext.java:778)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyCompositeComponentFacelet(CompositeComponentResourceTagHandler.java:443)
> at
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyNextHandler(CompositeComponentResourceTagHandler.java:216)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> org.apache.myfaces.view.facelets.tag.UserTagHandler.apply(UserTagHandler.java:210)
> at
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:193)
> at
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:136)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:459)
> at
> org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:94)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:514)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:568)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:389)
> at
> org.apache.myfaces.view.facelets.tag.UserTagHandler.apply(UserTagHandler.java:159)
> at
> org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:86)
> at
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:178)
> at
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:193)
> at
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:136)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:459)
> at
> org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:94)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:55)
> at
> org.richfaces.ui.behavior.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
> at
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:373)
> at
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:50)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:195)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:46)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:514)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:568)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:546)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:240)
> at
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:151)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:514)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:568)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:546)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:240)
> at
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:151)
> at
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:59)
> at
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
> at
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:187)
> at
> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:477)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:267)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> ...
--
This message was sent by Atlassian JIRA
(v6.2#6252)