[ https://issues.apache.org/jira/browse/JCLOUDS-1433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16539275#comment-16539275 ]
ASF subversion and git services commented on JCLOUDS-1433: ---------------------------------------------------------- Commit c34935dcd3476db7397e7433de6243ec81a09ccf in jclouds's branch refs/heads/master from [~jesse.gl...@netbeans.com] [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=c34935d ] [JCLOUDS-1433] $ and \ in tokenValues passed to Strings2.replaceTokens(String, Multimap) could result in IllegalArgumentException. > IllegalArgumentException from Strings2.replaceTokens > ---------------------------------------------------- > > Key: JCLOUDS-1433 > URL: https://issues.apache.org/jira/browse/JCLOUDS-1433 > Project: jclouds > Issue Type: Bug > Components: jclouds-core > Affects Versions: 2.2.0 > Reporter: Jesse Glick > Priority: Major > > While testing scenarios related to JCLOUDS-1401, I noticed that some > operations on blobs with funny filename characters resulted in exceptions > like: > {code:none} > java.lang.IllegalArgumentException: Illegal group reference > at java.util.regex.Matcher.appendReplacement(Matcher.java:857) > at java.util.regex.Matcher.replaceAll(Matcher.java:955) > at org.jclouds.util.Strings2.replaceTokens(Strings2.java:185) > at > org.jclouds.rest.internal.RestAnnotationProcessor.addHeader(RestAnnotationProcessor.java:763) > at > org.jclouds.rest.internal.RestAnnotationProcessor.addHeaderIfAnnotationPresentOnMethod(RestAnnotationProcessor.java:756) > at > org.jclouds.rest.internal.RestAnnotationProcessor.buildHeaders(RestAnnotationProcessor.java:719) > at > org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:268) > at > org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:137) > at > org.jclouds.rest.internal.InvokeHttpMethod.toCommand(InvokeHttpMethod.java:189) > at > org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:85) > at > org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:74) > at > org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:45) > at > org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156) > at > org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123) > at com.sun.proxy.$Proxy98.copyObject(Unknown Source) > at org.jclouds.s3.blobstore.S3BlobStore.copyBlob(S3BlobStore.java:324) > {code} > This seems to be due to a failure to notice that {{Matcher.replaceAll}} > interprets some metacharacters in its argument. -- This message was sent by Atlassian JIRA (v7.6.3#76005)