Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-11046

WeldApplication should extend ApplicationWrapper

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.1.0.DR19
    • None
    • CDI / Weld
    • None

    Description

      When upgrading WildFly 10.x to JSF 2.3, then running a web application using any JSF library having a custom javax.faces.application.Application will result in an UnsupportedOperationException during startup.

      Caused by: java.lang.UnsupportedOperationException
      	at javax.faces.application.Application.getSearchExpressionHandler(Application.java:2001)
      	at javax.faces.application.ApplicationWrapper.getSearchExpressionHandler(ApplicationWrapper.java:815)
      	at com.sun.faces.config.processor.ApplicationConfigProcessor.setSearchExpressionHandler(ApplicationConfigProcessor.java:738)
      	at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:382)
      	at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
      	at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:138)
      	at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:155)
      	at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:246)
      	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:443)
      	... 20 more
      
      

      This is reported a.o. here http://stackoverflow.com/questions/44076148/why-is-jsf-2-3-not-working-with-omnifaces-2-6-1

      This problem has the same grounds as reported in a.o. https://github.com/omnifaces/omnifaces/issues/75 and https://issues.jboss.org/browse/WELD-1805

      Root problem is: org.jboss.as.jsf.injection.weld.WeldApplication does not extend from JSF's own javax.faces.application.ApplicationWrapper having all necessary default methods implemented. Instead, it extends from a custom org.jboss.as.jsf.injection.weld.ForwardingApplication with only JSF 2.2 specific default methods hardcoded instead of relying on API-provided ones.

      Solution: let WeldApplication extend from ApplicationWrapper instead.

      Attachments

        Issue Links

          Activity

            People

              sdouglas1@redhat.com Stuart Douglas
              balusc@gmail.com Bauke Scholtz (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: