[ https://issues.apache.org/jira/browse/JCLOUDS-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17898368#comment-17898368 ]
Matthew Bellew commented on JCLOUDS-1640: ----------------------------------------- It looks like this particular usage was fixed in JCLOUDS-1631 However, as searh of the code shows many more usages where getQuery() is passed directly to QueryParser.apply() queryParser\(\).apply\(.*getQuery\(\)\) > RequestAuthorizeSignatureV2 throws on folder with % in name > ----------------------------------------------------------- > > Key: JCLOUDS-1640 > URL: https://issues.apache.org/jira/browse/JCLOUDS-1640 > Project: jclouds > Issue Type: Bug > Components: jclouds-blobstore > Affects Versions: 2.6.0 > Reporter: Matthew Bellew > Assignee: Andrew Gaul > Priority: Major > Labels: s3 > > If I create a "folder" (or blob with a '%' in the folder part of its name). > S3BlobStore.list() will throw IllegalArgumentException( "URLDecoder: > Incomplete trailing escape (%) pattern") > > The problem seems to be with this line of code in > RequestAutorizeSignatureV2.java: > Multimap<String, String> params = > queryParser().apply(request.getEndpoint().getQuery()); > > queryParser().apply() expects and encoded query string and will decode the > string itself. I believe getQuery() should be replaced with getRawQuery(). -- This message was sent by Atlassian Jira (v8.20.10#820010)