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.

Reply via email to