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

Leonardo Uribe commented on MYFACES-3735:
-----------------------------------------

First of all thanks for report this issue. I think it is a bug that could 
happen when by casuality two threads are building the same composite component 
at the same time. 

This is one of those issues that cannot be reproduced, because the conditions 
where this happens are very rare. In this case, once the composite component 
BeanInfo instance is built, it will not appear never again.

The solution is just ensure the volatile variable _cachedBeanInfo is written at 
the finally block inside CompositeComponentDefinitionTagHandler and use 
tempBeanInfo to hold the bean temporally. 

That should work, but I'm not 100% sure about that, so please give it a try and 
let me know if that works or not. I'll commit the code so you can just take a 
snapshot to try. Thanks for your help.
                
> NullPointerException in CompositeMetadataTargetImpl.<init>
> ----------------------------------------------------------
>
>                 Key: MYFACES-3735
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3735
>             Project: MyFaces Core
>          Issue Type: Bug
>            Reporter: Ulf Liller
>         Attachments: MYFACES-3735.patch
>
>
> In our application (MyFaces 2.1.10, RichFaces 4.2.2), the following exception 
> is sometimes (rarely) thrown when logging in. If that happens, it completely 
> breaks the app, all subsequent login attempts fail with the same exception.
> {code}
> java.lang.NullPointerException
>       at 
> org.apache.myfaces.view.facelets.tag.composite.CompositeMetadataTargetImpl.<init>(CompositeMetadataTargetImpl.java:58)
>       at 
> org.apache.myfaces.view.facelets.tag.composite.CompositeMetaRulesetImpl.<init>(CompositeMetaRulesetImpl.java:103)
>       at 
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.createMetaRuleset(CompositeComponentResourceTagHandler.java:410)
>       at 
> org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.setAttributes(CompositeComponentResourceTagHandler.java:401)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.setAttributes(BehaviorsAddingComponentHandlerWrapper.java:113)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:237)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:158)
>       at 
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
>       at 
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:394)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:448)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:426)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:217)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:158)
>       at 
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
>       at 
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:394)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:448)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:426)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:217)
>       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:175)
>       at 
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:186)
>       at 
> org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:131)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:460)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:94)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:58)
>       at 
> org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53)
>       at 
> org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:294)
>       at 
> javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:53)
>       at 
> javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:49)
>       at 
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
>       at 
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:394)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:448)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:426)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:244)
>       at 
> org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:148)
>       at 
> org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:57)
>       at 
> org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:48)
>       at 
> org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:179)
>       at 
> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:452)
>       at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> com.recommind.litigation.client.web.filters.LoginFilter.doFilter(LoginFilter.java:236)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> com.recommind.litigation.client.web.filters.CacheFilter.doFilter(CacheFilter.java:105)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> com.recommind.litigation.client.web.filters.TimerFilter.doFilter(TimerFilter.java:81)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> com.recommind.litigation.client.web.filters.EncodingFilter.doFilter(EncodingFilter.java:54)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>       at java.lang.Thread.run(Thread.java:722)
> {code}
> I'm sorry that I can not give much info, we saw it happening during automated 
> UI tests but have not been able to reproduce it in a way that we can debug it.

--
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