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
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]