[
https://issues.apache.org/jira/browse/CXF-6765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15128012#comment-15128012
]
Sergey Beryozkin commented on CXF-6765:
---------------------------------------
The reason '+' is replaced by '%2B' first in case of a path component is that I
recall one of JAX-RS spec authors confirming that in order to pass '+' in a
path one does not have to encode it into '%2B', i.e, one can actually pass '+'
as is, I believe it is not listed as a special delimiter for a path component.
So if we have such a producer who means '+' is '+' then we can not replace with
a space.
'+' can be used as a space representation in the components whose values can be
form encoded, which is a query; or a form body payload...
IMHO you should have either '%20+%20' or '%20%2B%20'
> UrlUtils#urlDecode incorrectly decodes encoded path with encoded plus = %2B
> symbol
> ----------------------------------------------------------------------------------
>
> Key: CXF-6765
> URL: https://issues.apache.org/jira/browse/CXF-6765
> Project: CXF
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.1.4
> Environment: WIndows 7, Java 8
> Reporter: Karsten Ohme
>
> I'm decoding some matrix parameters. When using a path with an encoded + (=
> %2B encoded), e.g. filterValue=Foobar+%2B+Bar which should be "Foobar + Bar",
> but it is "Foobar Bar", because the %2B is decoded as plus first and later
> decoded as a space.
> The error is produced in
> org.apache.cxf.common.util.UrlUtils#urlDecode(java.lang.String,
> java.lang.String, boolean).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)