[ http://issues.apache.org/jira/browse/PB-52?page=comments#action_12460608 ] Matthew Bruzek commented on PB-52: ----------------------------------
I agree it is pointless to have a method that does nothing. And I hope you can look in to this problem more. I believe that the encodeActionURL() method is intended for ExternalContextImpl when there is no portal environment (servlets, jsps, etc). In the Portal environment the class PortalExternalContextImpl will always get an encoded url and have a problem when the PortletResponse tries to encode it. Thanks for looking into this. > JSF portal bridge attempting to encode URL twice fails > ------------------------------------------------------ > > Key: PB-52 > URL: http://issues.apache.org/jira/browse/PB-52 > Project: Portals Bridges > Issue Type: Bug > Components: jsf > Affects Versions: 1.0 > Environment: Sun JSF Reference Implementation version 1.2 > (jsf-impl.jar) > Websphere portlet container version 6.1.0 > Apache MyFaces JSF portal bridge version 1.0 (portals-bridges-jsf-1.0.jar) > Reporter: Matthew Bruzek > Assigned To: David Sean Taylor > > I evaluating the MyFaces portlet bridge with a sample JSF portal app and I > ran into a problem. The portlet worked with the Sun portlet bridge, but does > not even complete the render phase when I try to use the MyFaces portlet > bridge. > The exception I am seeing is: > javax.servlet.ServletException: only absolute URLs or full path URIs are > allowed > Caused by: java.lang.IllegalArgumentException: only absolute URLs or full > path URIs are allowed > at > com.ibm.ws.portletcontainer.core.impl.PortletResponseImpl.encodeURL(PortletResponseImpl.java:143) > at > org.apache.portals.bridges.jsf.PortletExternalContextImpl.encodeActionURL(PortletExternalContextImpl.java) > I hooked up a remote debugger to see what was happening. The String URL that > is passed into PortletExternalContextImpl is: > pa.do?_pa=-1088437171&_rid=-507a2aba:10f977651ed:-7fee&.pa=true > As you can see the URL is already encoded and the encodeActionURL( String ) > method attempts to call this.portletResponse.encodeURL(s). The > PortletResponse tries to encode the string URL again, leading to the > Exception. > I tracked down the difference in Sun's version of ExternalContextImpl. I > found a Sun portlet bridge bug # 6243708 that addresses the same problem of > double encoding the value from the portlet environment. The Sun portlet > bridge fixed this bug in their > com.sun.faces.portlet.ExternalContextImpl.encodeActionURL( String ) method to > return the string url instead of attempting to encode it again. > I suggest that the PortletExternalContextImpl will always get portal encoded > URL strings, and should return the string passed to it to avoid this > Exceptional case. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
