[ 
https://issues.apache.org/jira/browse/HDFS-7816?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14329790#comment-14329790
 ] 

Jason Lowe commented on HDFS-7816:
----------------------------------

I don't think we can rely on clients changing the way the URL is encoded, 
otherwise we break compatibility with older clients.

I think Kihwal's patch will work even with older clients.  My main concern is 
that we're relying on QueryStringDecoder#path to give us a raw path so URI can 
decode it properly.  The javadoc for that method says it returns a decoded 
path, and if that were ever fixed to match the javadoc then we'd end up 
double-decoding which will break for some paths.  It also seems weird to me 
that we're using a QueryStringDecoder to obtain parts of the URL that aren't 
query strings.  I think it would be safer to avoid QueryStringDecoder 
altogether for the path computation and just pass the original request URI 
string to the URI constructor for path decoding.

> Unable to open webhdfs paths with "+"
> -------------------------------------
>
>                 Key: HDFS-7816
>                 URL: https://issues.apache.org/jira/browse/HDFS-7816
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: webhdfs
>    Affects Versions: 2.7.0
>            Reporter: Jason Lowe
>            Assignee: Kihwal Lee
>            Priority: Blocker
>         Attachments: HDFS-7816.patch, HDFS-7816.patch
>
>
> webhdfs requests to open files with % characters in the filename fail because 
> the filename is not being decoded properly.  For example:
> $ hadoop fs -cat 'webhdfs://nn/user/somebody/abc%def'
> cat: File does not exist: /user/somebody/abc%25def



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to