-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: liferay-faces-3.0.2-legacy-ga3, liferay-faces-3.0.2-ga3
-
Fix Version/s: liferay-faces-3.0.2-legacy-ga3, liferay-faces-3.0.2-ga3, liferay-faces-3.1.2-ga3
-
Component/s: ZZZ: Legacy - Test
-
Labels:None
-
Environment:Liferay Portal 6.0.12 / 5.2.9
Steps to Reproduce:
1. Deploy the jsf2-export-pdf-portlet and the icefaces3-crud-portlet to Liferay Portal 6.0.12 or Liferay Portal 5.2.9
2. Deploy the test-setup-hook
3. Navigate to the "Bridge Demos" site
4. Click on page link for "JSF2-PDF" and "ICE3-CRUD"
If the error still exists, you will see a "temporarily unavailable" error message in the browser, and the following in the Tomcat console:
16:32:16,582 ERROR [render_portlet_jsp:154] java.lang.IllegalStateException: Could not find backup for factory javax.faces.lifecycle.LifecycleFactory.
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1010)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:342)
at com.liferay.faces.bridge.BridgePhaseBaseImpl.<init>(BridgePhaseBaseImpl.java:102)
at com.liferay.faces.bridge.BridgePhaseCompatImpl.<init>(BridgePhaseCompatImpl.java:38)
at com.liferay.faces.bridge.BridgePhaseRenderImpl.<init>(BridgePhaseRenderImpl.java:66)
at com.liferay.faces.bridge.BridgePhaseFactoryImpl.getBridgeRenderPhase(BridgePhaseFactoryImpl.java:49)
at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:110)
at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:255)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:204)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:653)
at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:726)
at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:426)
at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1417)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
It turns out that this was caused by FACES-1491. Specifically, when we removed the <instanceable>true</instanceable> entry from WEB-INF/liferay-portlet.xml, we neglected to remove the "INSTANCE" from the corresponding entry in the TestPages.java class in the test-setup-hook. Liferay 6.1+ must be able to straighten this out at runtime and display the portlets without error.