Details
-
Bug
-
Status: Closed
-
Resolution: Duplicate
-
7.0.0 Beta 8
-
None
-
None
-
4
Description
Steps to Reproduce:
1. Start Liferay Portal 7.0 CE
2. Copy the attached jsf-jsp-applicant-portlet-4.0.0.war module to $LIFERAY_HOME/modules/deploy
3. Add the "jsf-jsp-applicant" portlet to a new portal page (found under the "Samples" category)
4. Reload the portal page
If the bug is fixed, then the portlet will render normally.
Otherwise, if the bug still exists, then the following stacktrace will appear in the console log:
23:59:59,462 DEBUG [DebugPhaseListener:50] AFTER phaseId=[RENDER_RESPONSE 6] viewId=[/WEB-INF/views/portletViewMode.jspx] 23:59:59,463 ERROR [http-nio-8080-exec-6][render_portlet_jsp:131] null java.io.IOException: org.apache.jasper.JasperException: /WEB-INF/views/portletViewMode.jspx(17,86) PWC6317: The attributes for a standard action or an uninterpreted tag cannot be deferred expressions at com.liferay.faces.bridge.context.internal.ExternalContextImpl.dispatch(ExternalContextImpl.java:135) at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363) at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:153) at javax.faces.view.ViewDeclarationLanguageWrapper.buildView(ViewDeclarationLanguageWrapper.java:106) at com.liferay.faces.bridge.application.view.internal.ViewDeclarationLanguageBridgeBase.buildView(ViewDeclarationLanguageBridgeBase.java:56) at com.liferay.faces.bridge.application.view.internal.ViewDeclarationLanguageBridgeJspImpl.buildView(ViewDeclarationLanguageBridgeJspImpl.java:94) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) at com.liferay.faces.bridge.internal.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:247) at com.liferay.faces.bridge.internal.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:99) at com.liferay.faces.bridge.internal.BridgeImpl.doFacesRequest(BridgeImpl.java:131) at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:263) at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:359) at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:212) at javax.portlet.GenericPortlet.render(GenericPortlet.java:262) at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103) at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:57) at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100) at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
This is due to the presence of "deferred expression" syntax in the portletViewMode.jspx view:
<h:panelGroup layout="block" styleClass="span12"> <ul> <li><em><h:outputText value="#{bridgeContext.bridgeConfig.attributes['JSF']}" /></em></li> <li><em><h:outputText value="#{bridgeContext.bridgeConfig.attributes['Liferay Faces Alloy']}" /></em></li> <li><em><h:outputText value="#{bridgeContext.bridgeConfig.attributes['Liferay Faces Bridge']}" /></em></li> </ul> </h:panelGroup>