[ 
https://issues.apache.org/jira/browse/MYFACES-3414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe resolved MYFACES-3414.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.6
                   2.0.12
         Assignee: Leonardo Uribe
    
> MyFaces ResourceImpl$ValueExpressionFilterInputStream does not handle 
> resolving long URLs
> -----------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3414
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3414
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.1.3, 2.1.4
>            Reporter: Deryk Sinotte
>            Assignee: Leonardo Uribe
>            Priority: Critical
>             Fix For: 2.0.12, 2.1.6
>
>
> We have logged an issue in our own JIRA tracker for this issue as well: 
> http://jira.icefaces.org/browse/ICE-7518
> It was discovered running on Liferay but the issue turn out to be not 
> specific to portlets - it's simply manifest more obviously there.  Given a 
> CSS file with an EL resource such as:
> url("#{resource['icefaces.ace:themes/sam/images/ui-default.png']}") 
> MyFaces will typically return something like:
> url("/my/javax.faces.resource/themes/sam/images/ui-default.png.jsf?ln=icefaces.ace")
>  
> When running on Liferay, the returned URL will be much longer given the 
> portlet namespacing and the various Liferay request parameters:
> url("http://localhost:8080/web/guest/acefile?_fileEntry_WAR_showcaseportlet_ln=icefaces.ace&_fileEntry_WAR_showcaseportlet_javax.faces.resource=themes%2Fsam%2Fimages%2Fui-default.png&p_p_col_count=1&p_p_col_id=column-1&p_p_id=fileEntry_WAR_showcaseportlet&p_p_lifecycle=2";)
>  
> However, the URL that is actually written into our CSS file looks like this:
> url("lhost:8080/web/guest/acefile?_fileEntry_WAR_showcaseportlet_ln=icefaces.ace&_fileEntry_WAR_showcaseportlet_javax.faces.resource=themes%2Fsam%2Fimages%2Fui-default.png&p_p_col_count=1&p_p_col_id=column-1&p_p_id=fileEntry_WAR_showcaseportlet&p_p_lifecycle=2")
>  
> The URL is missing characters at the front
> lhost:8080/web
> instead of 
> http://localhost:8080/web
> Almost all the resource URLs in our CSS file are mangled in a similar way.  
> After a lot of head scratching, it turns out that the URLs are longer than 
> ResourceImpl$ValueExpressionFilterInputStream is prepared to handle:
>     private class ValueExpressionFilterInputStream extends InputStream 
>     { 
>         private PushbackInputStream delegate; 
>          
>         public ValueExpressionFilterInputStream(InputStream in) 
>         { 
>             super(); 
>             delegate = new PushbackInputStream(in,255); 
>         } 
> ... 
> For us, setting the "unread" buffer to a higher number than 255 appears to 
> solve the issue.  Perhaps this could be done a different way to account for 
> longer URLs or at least made configurable if someone needs to adjust it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to