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)));
