[
https://issues.apache.org/jira/browse/MYFACES-2395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Leonardo Uribe resolved MYFACES-2395.
-------------------------------------
Resolution: Fixed
Fix Version/s: 2.1.2
2.0.8
1.2.11
I checked it again and the right thing to do is get RenderKitFactory just once
in each place it is used, and deprecate this method. Anyway, I changed the code
so now it use FacesContext attribute map. In 1.2 version I add an additional
instanceof to check that case and if it is found recalculate the renderkit and
prevent the bug (I don't know why I didn't do that before! maybe too focus on
explain why that setup was not working).
> Cant' run two JSF portlets on the same portal page
> --------------------------------------------------
>
> Key: MYFACES-2395
> URL: https://issues.apache.org/jira/browse/MYFACES-2395
> Project: MyFaces Core
> Issue Type: Bug
> Components: Portlet_Support
> Environment: JDK 1.5, JBoss AS 4.2.3, eXo PC 2.0.5 or eXO WCM 1.0 or
> eXO WCM 1.2
> Reporter: Fernando Silva Lozano
> Assignee: Leonardo Uribe
> Fix For: 1.2.11, 2.0.8, 2.1.2
>
> Attachments: hora-mundo-jsf.war, todo-jsf.war
>
>
> Running two portlets in the same portal page, using JSF and the MyFaces
> Portlet Bridge (which is the RI for JSR-301, the JSF Portlet Bridge) yelds
> the error bellow for the second portlet:
> 19:31:39,704 ERROR [portletcontainer] exception returned by processAction()
> or render() methods
> javax.portlet.PortletException: doBridgeDispatch failed: error from Bridge
> in executing the request
> at
> javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:504)
> at
> javax.portlet.faces.GenericFacesPortlet.doRenderDispatchInternal(GenericFacesPortlet.java:456)
> at
> javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:231)
> at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:354)
> at
> javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:202)
> at javax.portlet.GenericPortlet.render(GenericPortlet.java:259)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.PortletMethodCommand.render(PortletMethod
> Command.java:62)
> at
> org.exoplatform.services.portletcontainer.plugins.pc.aop.BaseCommandUnit.execute(BaseCommandUnit.java:46)
> ...
> Caused by: javax.portlet.faces.BridgeException:
> java.lang.ClassCastException:
> org.apache.myfaces.renderkit.RenderKitFactoryImpl
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRender(BridgeImpl.java:654)
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:544)
> at
> javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:501)
> ... 63 more
> Caused by: java.lang.ClassCastException:
> org.apache.myfaces.renderkit.RenderKitFactoryImpl
> at
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.getResponseStateManager(RendererUtils.java:
> 1158)
> at
> org.apache.myfaces.lifecycle.DefaultRestoreViewSupport.isPostback(DefaultRestoreViewSupport.java:127)
> at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:80)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> at
> org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRender(BridgeImpl.java:640)
> ... 65 more
> This exception allways happen with the second portlet on the page, whichever
> it is. I tried with many portlets, but so you can reproduce the problem I'm
> attaching the wars for two very simple portlets.
> I'm filling this under MyFaces Core instead of Portlet Bridge because the
> same applications, if deployed to use Mojarra (included in JBoss AS 4.2) and
> the same portelt bridge jars, work fine.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira