Repository: jclouds
Updated Branches:
  refs/heads/1.8.x e2bf20a61 -> f2d897d97


Set Content-MD5 only if ETag has correct format

Previously this check was more lenient than it should have been.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/f2d897d9
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/f2d897d9
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/f2d897d9

Branch: refs/heads/1.8.x
Commit: f2d897d9774c2c0225c199c7f2f46971637327d6
Parents: e2bf20a
Author: Andrew Gaul <[email protected]>
Authored: Mon Aug 18 23:15:49 2014 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Thu Aug 28 21:51:51 2014 -0700

----------------------------------------------------------------------
 .../src/main/java/org/jclouds/s3/xml/ListBucketHandler.java | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/f2d897d9/apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java 
b/apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java
index c023d43..be54e2d 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/xml/ListBucketHandler.java
@@ -20,6 +20,7 @@ import static com.google.common.io.BaseEncoding.base16;
 import static org.jclouds.http.Uris.uriBuilder;
 import static org.jclouds.util.SaxUtils.currentOrNull;
 
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.inject.Inject;
@@ -63,7 +64,7 @@ public class ListBucketHandler extends 
ParseSax.HandlerWithResult<ListBucketResp
    private boolean isTruncated;
 
    /** Some blobs have a non-hex suffix when created by multi-part uploads 
such Amazon S3. */
-   private static final Pattern MULTIPART_BLOB_ETAG = 
Pattern.compile("[0-9a-f]+-[0-9]+");
+   private static final Pattern ETAG_CONTENT_MD5_PATTERN = 
Pattern.compile("\"([0-9a-f]+)\"");
 
    @Inject
    public ListBucketHandler(DateService dateParser) {
@@ -101,9 +102,9 @@ public class ListBucketHandler extends 
ParseSax.HandlerWithResult<ListBucketResp
       } else if (qName.equals("ETag")) {
          String currentETag = currentOrNull(currentText);
          builder.eTag(currentETag);
-         currentETag = currentETag.replace("\"", "");
-         if (!MULTIPART_BLOB_ETAG.matcher(currentETag).matches()) {
-            builder.contentMD5(base16().lowerCase().decode(currentETag));
+         Matcher matcher = ETAG_CONTENT_MD5_PATTERN.matcher(currentETag);
+         if (matcher.matches()) {
+            builder.contentMD5(base16().lowerCase().decode(matcher.group(1)));
          }
       } else if (qName.equals("Size")) {
          builder.contentLength(Long.valueOf(currentOrNull(currentText)));

Reply via email to