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

Sergey Beryozkin resolved CXF-4861.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.6.7
                   2.7.4
                   2.8.0
         Assignee: Sergey Beryozkin

The original reported code will result in IAE, replacing the template variable 
like "{var}" with "$dummyTokenValue", with UriBuilder already containing 
encoded parts, will work as expected with build() or buildFromEncoded calls 
                
> Encoding issue jax-rs - UriBuilder
> ----------------------------------
>
>                 Key: CXF-4861
>                 URL: https://issues.apache.org/jira/browse/CXF-4861
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.6, 2.7.0
>            Reporter: Stephan Klevenz
>            Assignee: Sergey Beryozkin
>             Fix For: 2.8.0, 2.7.4, 2.6.7
>
>
> Use Case: OData (odata.org) / odata4j (odata4j.org)
> Building an URI based on OData query parameter:
> URI called by http client: .../Employees?$filter=startswith(CarrierId,'A')
> URI build on server:
> String nextHref = 
> uriInfo.getRequestUriBuilder().replaceQueryParam("$skiptoken", 
> "{dummySkipToken}").build().toString();
> Result is:
> /Employees?$filter=startswith%2528CarrierId%252C%2527A%2527%2529&$skiptoken=%7BdummySkipToken%7D
> The value of query parameter $filter is encoded twice. The issue is in the 
> embrasing {} of the value of the $skiptoken query parameter.
> CXF does a partial encoding of the first query parameter which succeeds and 
> then gets a UriSyntaxException for the 2nd query parameter. After that it 
> falls back and encodes the whole URI while the 1st query option is already 
> encoded.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to