Uploaded image for project: 'MyFaces Trinidad'
  1. MyFaces Trinidad
  2. TRINIDAD-2537

Combination of Trinidad with MyFaces Core and Spring WebFlow doesn't function

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.1.0-core
    • 2.1.1-core
    • Facelets
    • None
    • MyFaces Core 2.1.17 (instead of Mojarra)
      Trinidad 2.0.1
      Spring WebFlow 2.4.2
      Tomcat 7.0.35
      Windows 7 64 bit
      Java 8.0.45-64bit

    Description

      When starting a webapp based on Trinidad and Spring WebFlow with MyFaces Core as JSF implementation following exception occurrs:

      java.lang.ClassNotFoundException: com.sun.faces.component.CompositeComponentStackManager
      java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
      java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      org.springframework.faces.webflow.JsfViewFactory$MojarraProcessTreeHandler.handleBefore(JsfViewFactory.java:225)
      org.springframework.faces.webflow.JsfViewFactory.processTree(JsfViewFactory.java:166)
      org.springframework.faces.webflow.JsfViewFactory.getViewStateViewRoot(JsfViewFactory.java:138)
      org.springframework.faces.webflow.JsfViewFactory.getViewRoot(JsfViewFactory.java:102)
      org.springframework.faces.webflow.JsfViewFactory.getView(JsfViewFactory.java:86)
      org.springframework.webflow.engine.ViewState.resume(ViewState.java:192)
      org.springframework.webflow.engine.Flow.resume(Flow.java:537)

      Reason: org.springframework.faces.webflow.JsfRuntimeInformation.isMyFacesInUse() returns false because of following bug in Trinidad:
      org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl extends javax.faces.context.FacesContextFactory but FacesContextFactory.getWrapped() isn't overwritten. So getWrapped() returns null which causes the loop in org.springframework.faces.webflow.JsfRuntimeInformation.checkMyFacesContextFactory() to terminate and to return false.

      Solution: Add following method to org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl:
      @Override
      public FacesContextFactory getWrapped()

      { return _factory; }

      Attachments

        Activity

          People

            lu4242 Leonardo Uribe
            malzahn Volker Malzahn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: