Hi, I was having an occasional problem with this class. It usually happened once or twice a day, in CI environment (110 concurrent E2E tests) and production.
The problem is related to concurrency. With AI assistance I could identify and write a patch. I've been using it for a week and didn't have any more bugs of this type. The error with the location always pointed to a xhtml line with some static attribute like lazy="true" or queryDelay="100" I'm using myfaces 2.3-next-M9, but I think all versions are affected. The stacktrace: javax.faces.view.facelets.TagAttributeException: //var/jenkins_home/workspace/tr2-pull-requests/tr2-web/src/main/webapp/admin/transfer/modal-search-transfer-hotel.xhtml at line 32 and column 83 lazy="true" java.lang.NullPointerException: Cannot invoke "java.lang.Number.intValue()" because the return value of "sun.invoke.util.ValueConversions.primitiveConversion(sun.invoke.util.Wrapper, Object, boolean)" is null at org.apache.myfaces.view.facelets.tag.BeanPropertyTagRule$LiteralPropertyMetadata.applyMetadata(BeanPropertyTagRule.java:138) at org.apache.myfaces.view.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:45) 2 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:281) 3 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:362) 1 line skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.apply(CompositeComponentResourceTagHandler.java:742) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext$CompositeComponentTemplateManager.apply(DefaultFaceletContext.java:526) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeCompositeComponentDefinition(DefaultFaceletContext.java:485) at org.apache.myfaces.view.facelets.tag.composite.InsertChildrenHandler.apply(InsertChildrenHandler.java:77) at org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:83) at org.apache.myfaces.view.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:254) at org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:192) at org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:137) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:423) at org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:94) 2 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:362) 2 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:147) at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:67) at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:49) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:510) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:566) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:543) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:216) at org.apache.myfaces.view.facelets.tag.ui.DecorateHandler.apply(DecorateHandler.java:199) at org.apache.myfaces.view.facelets.tag.composite.ImplementationHandler.apply(ImplementationHandler.java:66) 1 line skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentDefinitionTagHandler.apply(CompositeComponentDefinitionTagHandler.java:254) at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:67) at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:49) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.applyCompositeComponent(DefaultFacelet.java:601) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.applyCompositeComponent(DefaultFaceletContext.java:611) at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyCompositeComponentFacelet(CompositeComponentResourceTagHandler.java:462) at org.apache.myfaces.view.facelets.tag.composite.CompositeComponentResourceTagHandler.applyNextHandler(CompositeComponentResourceTagHandler.java:236) at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:362) 1 line skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:147) at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:67) at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:49) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:510) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:566) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:543) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:216) at org.apache.myfaces.view.facelets.tag.ui.IncludeHandler.apply(IncludeHandler.java:215) 1 line skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:83) at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:160) at org.apache.myfaces.view.facelets.impl.TemplateContextImpl$TemplateManagerImpl.apply(TemplateContextImpl.java:192) at org.apache.myfaces.view.facelets.impl.TemplateContextImpl.includeDefinition(TemplateContextImpl.java:137) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:423) at org.apache.myfaces.view.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:94) 2 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.apply(ComponentTagHandlerDelegate.java:362) 2 lines skipped for [javax.faces] at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:67) 1 line skipped for [javax.faces] at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:49) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:510) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:566) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:543) at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:216) at org.apache.myfaces.view.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:138) at org.apache.myfaces.view.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:67) at org.apache.myfaces.view.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:49) at org.apache.myfaces.view.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:182) at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:435) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:83) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) 3 lines skipped for [org.apache.catalina, javax.faces] at org.omnifaces.filter.FacesExceptionFilter.doFilter(FacesExceptionFilter.java:118) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.LoginWebFilter.doFilter(LoginWebFilter.java:106) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.bean.agencycollectivepassword.AgencyCollectivePasswordFilter.doFilter(AgencyCollectivePasswordFilter.kt:43) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.AgencyFilter.doFilter(AgencyFilter.java:48) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.MicrositeFilter.doFilter(MicrositeFilter.java:95) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 5 lines skipped for [org.apache.catalina, org.apache.tomcat] at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:67) 2 lines skipped for [org.apache.catalina] at org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:226) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.SassCompileFilter.doFilter(SassCompileFilter.java:61) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.AdminFilter.doFilter(AdminFilter.java:42) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215) at net.bull.javamelody.TravelcMonitoringFilter.doFilter(TravelcMonitoringFilter.java:84) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.RequestLogFilter.internalDoFilter(RequestLogFilter.java:127) at com.tr2.web.filter.RequestLogFilter.doFilter(RequestLogFilter.java:69) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at com.tr2.web.filter.CacheFilter.doFilter(CacheFilter.java:30) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 2 lines skipped for [org.apache.catalina] at org.omnifaces.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:123) at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108) 4 lines skipped for [org.apache.catalina] at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) 3 lines skipped for [org.apache.catalina] at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97) 13 lines skipped for [org.apache.catalina, org.apache.tomcat, org.apache.coyote] at java.base/java.lang.Thread.run(Thread.java:1527) Caused by: java.lang.IllegalArgumentException: java.lang.NullPointerException: Cannot invoke "java.lang.Number.intValue()" because the return value of "sun.invoke.util.ValueConversions.primitiveConversion(sun.invoke.util.Wrapper, Object, boolean)" is null at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:114) at java.base/java.lang.reflect.Method.invoke(Method.java:583) at org.apache.myfaces.view.facelets.tag.BeanPropertyTagRule$LiteralPropertyMetadata.applyMetadata(BeanPropertyTagRule.java:129) ... 156 more Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Number.intValue()" because the return value of "sun.invoke.util.ValueConversions.primitiveConversion(sun.invoke.util.Wrapper, Object, boolean)" is null at java.base/sun.invoke.util.ValueConversions.unboxBoolean(ValueConversions.java:108) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ... 158 more With AI assistance, I could write a patch https://github.com/Travelcompositor/myfaces/commit/4b8d40f554df93f1398e6668e82aa50228198fcf . I haven't had any more bugs of this type, so I consider this patch useful. If you want, I can open a JIRA ticket and submit a PR with this documentation. Best regards, Vicente.
