[
https://issues.apache.org/jira/browse/CXF-4861?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13590521#comment-13590521
]
Aki Yoshida commented on CXF-4861:
----------------------------------
I chatted with sergey. It appears the assumption above was wrong.
The spec talks about an IAE in this case:
public abstract java.net.URI build(java.lang.Object... values)
throws java.lang.IllegalArgumentException,
UriBuilderException
...
Throws:
java.lang.IllegalArgumentException - if there are any URI template parameters
without a supplied value, or if a value is null.
UriBuilderException - if a URI cannot be constructed based on the current state
of the builder.
> 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
>
> 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