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]

Reply via email to