[ 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