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

Gonçalo Manuel Cruchinho edited comment on MYFACES-3867 at 3/10/14 5:23 PM:
----------------------------------------------------------------------------

Hi Leonardo,

I am using the latest trunk snapshot updated today. I'm aware of MYFACES-3853 
(I reported it) and the issue reported there is indeed resolved, but this 
problem is different. It seems that component state is being written to 
incorrect components. In this case it seems that a ForEach tag state was 
written to a If tag state resulting in the stack trace you see above.

Strangely enough, removing simple div tags seems to remove this error in a 
number of situations:

This produces the error (this is just a fragment of the view):

<div>
        <div>
                <h5 id="randomId">
                        <c:if test="#{customComponent.condition1}">
                                <p>Test1</p>
                        </c:if>
                        <c:if test="#{customComponent.condition2}">
                                <p>Test2</p>
                        </c:if>
                        <c:if test="#{customComponent.condition3}" >
                                <p>Test3</p>
                        </c:if>
                        <c:if test="#{customComponent.condition4}" >
                                <p>Test4</p>
                        </c:if>
                </h5>
        </div>
</div>

However, removing the <div> tags makes the page render without errors.

<h5 id="randomId">
        <c:if test="#{customComponent.condition1}">
                <p>Test1</p>
        </c:if>
        <c:if test="#{customComponent.condition2}">
                <p>Test2</p>
        </c:if>
        <c:if test="#{customComponent.condition3}" >
                <p>Test3</p>
        </c:if>
        <c:if test="#{customComponent.condition4}" >
                <p>Test4</p>
        </c:if>
</h5>

Additionally, if we remove all of the if tags instead, this makes the page 
render without errors.

<div>
        <div>
                <h5 id="randomId">
                        <p>Test1</p>
                        <p>Test2</p>
                        <p>Test3</p>
                        <p>Test4</p>
                </h5>
        </div>
</div>



was (Author: gmanuel):
Hi Leonardo,

I am using the latest trunk snapshot updated today. I'm aware of MYFACES-3853 
(I reported it) and the issue reported there is indeed resolved, but this 
problem is different. It seems that component state is being written to 
incorrect components. In this case it seems that a ForEach tag state was 
written to a If tag state resulting in the stack trace you see above.

Strangely enough, removing simple div tags seems to remove this error in a 
number of situations:

This produces the error:

<div>
        <div>
                <h5 id="randomId">
                        <c:if test="#{customComponent.condition1}">
                                <p>Test1</p>
                        </c:if>
                        <c:if test="#{customComponent.condition2}">
                                <p>Test2</p>
                        </c:if>
                        <c:if test="#{customComponent.condition3}" >
                                <p>Test3</p>
                        </c:if>
                        <c:if test="#{customComponent.condition4}" >
                                <p>Test4</p>
                        </c:if>
                </h5>
        </div>
</div>

However, removing the <div> tags makes the page render without errors.

<h5 id="randomId">
        <c:if test="#{customComponent.condition1}">
                <p>Test1</p>
        </c:if>
        <c:if test="#{customComponent.condition2}">
                <p>Test2</p>
        </c:if>
        <c:if test="#{customComponent.condition3}" >
                <p>Test3</p>
        </c:if>
        <c:if test="#{customComponent.condition4}" >
                <p>Test4</p>
        </c:if>
</h5>

Additionally, if we remove all of the if tags instead, this makes the page 
render without errors.

<div>
        <div>
                <h5 id="randomId">
                        <p>Test1</p>
                        <p>Test2</p>
                        <p>Test3</p>
                        <p>Test4</p>
                </h5>
        </div>
</div>


> Error during Restore Phase when using ajax and partial view re-rendering
> ------------------------------------------------------------------------
>
>                 Key: MYFACES-3867
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3867
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.2-SNAPSHOT
>            Reporter: Gonçalo Manuel Cruchinho
>
> 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)

Reply via email to