Repository: jclouds Updated Branches: refs/heads/master 268fb242d -> df996f323
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/df996f32 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/df996f32 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/df996f32 Branch: refs/heads/master Commit: df996f3231005b1ef294223d20efbabe74a23de7 Parents: 268fb24 Author: Andrew Gaul <[email protected]> Authored: Mon Aug 18 23:15:49 2014 -0700 Committer: Andrew Gaul <[email protected]> Committed: Thu Aug 28 21:50:57 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/df996f32/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 2c3ae2f..d7ed117 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)));
