Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-848

Problem using MyFaces + CODI

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Obsolete
    • Icon: Major Major
    • None
    • None
    • JSF

      I have been experimenting with the dormant support for MyFaces added by AS7-5649. After setting up a recent JBoss snapshot build (#1292) as described in that issue (adding commons-digester, myfaces-api, and myfaces-impl to modules), I attempted to use my application. It deploys successfully (which is a big step, before it failed due to AS7-5849 / AS7-1628), but as soon as I try to log in, it blows up with this stack trace:

      12:31:56,371 ERROR [com.lapis.cerberus.portal.exception.ExceptionHandlingFilter.Full] (http-localhost/127.0.0.1:8080-20) Exception ID 6183872498: java.lang.IllegalStateException: Error restoring component: j_id1
      	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:665) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:680) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:696) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreView(DefaultFaceletsStateManagementStrategy.java:330) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:130) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:2118) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:300) [myfaces-impl-2.1.9.jar:2.1.9]
      	at com.ocpsoft.pretty.faces.application.PrettyViewHandler.restoreView(PrettyViewHandler.java:109) [prettyfaces-jsf2-3.3.3.jar:]
      	at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.WindowContextAwareViewHandler.restoreView(WindowContextAwareViewHandler.java:122) [myfaces-extcdi-jsf20-module-impl-1.0.5.jar:1.0.5]
      	at org.apache.myfaces.extensions.cdi.jsf.impl.CodiViewHandler.restoreView(CodiViewHandler.java:99) [myfaces-extcdi-jsf20-module-impl-1.0.5.jar:1.0.5]
      	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83) [myfaces-api-2.1.9.jar:2.1.9]
      	at javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper.java:83) [myfaces-api-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:127) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:170) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) [myfaces-impl-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95) [myfaces-extcdi-jsf20-module-impl-1.0.5.jar:1.0.5]
      	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) [myfaces-api-2.1.9.jar:2.1.9]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at com.ocpsoft.pretty.PrettyFilter.doFilter(PrettyFilter.java:145) [prettyfaces-jsf2-3.3.3.jar:]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) [solder-impl-3.1.0.Final.jar:3.1.0.Final]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) [solder-impl-3.1.0.Final.jar:3.1.0.Final]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) [primefaces-3.4.1.jar:]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at com.lapis.cerberus.portal.exception.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:71) [classes:]
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:67)
      	at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.invoke(JBossWebContext.java:48)
      	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
      	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
      	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Alpha1-SNAPSHOT.jar:7.2.0.Alpha1-SNAPSHOT]
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:350) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:900) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at org.apache.tomcat.util.net.NioEndpoint$ChannelProcessor.run(NioEndpoint.java:1025) [jbossweb-7.2.0.Alpha2.jar:7.2.0.Alpha2]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_09]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_09]
      	at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_09]
      Caused by: java.lang.ClassCastException: javax.faces.component.UIViewRoot$ViewScope cannot be cast to javax.faces.convert.Converter
      	at javax.faces.component.UIOutput.restoreState(UIOutput.java:248) [myfaces-api-2.1.9.jar:2.1.9]
      	at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreStateFromMap(DefaultFaceletsStateManagementStrategy.java:661) [myfaces-impl-2.1.9.jar:2.1.9]
      	... 54 more
      

      After some experimentation, I determined that this is due to the use of the MyFaces CODI extensions in the project. If I remove the CODI libraries from the project (which is doable because it is only used in a few places, but not ideal), I do not get this exception. CODI has been tested against MyFaces, and I cannot find anyone else experiencing this problem, so I believe JBoss (or perhaps Weld) is doing something that CODI does not expect.

              ssilvert@redhat.com Stan Silvert
              rdicroce Richard DiCroce (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: