]
Stuart Douglas updated WFLY-8815:
---------------------------------
Issue Type: Bug (was: Feature Request)
WeldApplication should extend ApplicationWrapper
------------------------------------------------
Key: WFLY-8815
URL:
https://issues.jboss.org/browse/WFLY-8815
Project: WildFly
Issue Type: Bug
Components: CDI / Weld
Affects Versions: 10.1.0.Final
Environment: WildFly 10.1.0.Final with JSF 2.3
Reporter: Bauke Scholtz
Assignee: Stuart Douglas
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.
{code}
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
{code}
This is reported a.o. here
http://stackoverflow.com/questions/44076148/why-is-jsf-2-3-not-working-wi...
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.