You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bridges-dev@portals.apache.org by "David Sean Taylor (JIRA)" <br...@portals.apache.org> on 2006/12/23 00:12:22 UTC

[jira] Commented: (PB-52) JSF portal bridge attempting to encode URL twice fails

    [ http://issues.apache.org/jira/browse/PB-52?page=comments#action_12460607 ] 
            
David Sean Taylor commented on PB-52:
-------------------------------------

It seems kind of pointless to have this method if it does nothing
I have seen the MyFaces bridge working fine with actionURLs, but perhaps we never call the encode method
I need to leave this open until I can find more time to review and test it


> 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: bridges-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: bridges-dev-help@portals.apache.org