[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.provider:aws-s3:bundle:1.3.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.3.0-SNAPSHOT (/Users/adriancole/workspace/git/jclouds/project/pom.xml) points at org.jclouds:jclouds-multi instead of org.sonatype.oss:oss-parent, please verify your project structure @ org.jclouds:jclouds-project:1.3.0-SNAPSHOT, /Users/adriancole/workspace/git/jclouds/project/pom.xml, line 24, column 13
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building jclouds Amazon Simple Storage Service (S3) provider 1.3.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ aws-s3 ---
[INFO] Deleting /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-maven) @ aws-s3 ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-banned-dependencies) @ aws-s3 ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-java) @ aws-s3 ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.2:process (process-remote-resources) @ aws-s3 ---
[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.
[INFO] Setting property: velocimacro.messages.on => 'false'.
[INFO] Setting property: resource.loader => 'classpath'.
[INFO] Setting property: resource.manager.logwhenfound => 'false'.
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:resources (default-resources) @ aws-s3 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/jclouds/providers/aws-s3/src/main/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:compile (default-compile) @ aws-s3 ---
[INFO] Compiling 23 source files to /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:testResources (default-testResources) @ aws-s3 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/jclouds/providers/aws-s3/src/test/clojure
[INFO] Copying 3 resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:testCompile (default-testCompile) @ aws-s3 ---
[INFO] Compiling 22 source files to /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ aws-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test testCompleteMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testGetBucketLocation(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testInitiateMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testGetBucketLocationEU(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testAbortMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testCompleteMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 120ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testPutBucketDefault(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-4] Test testGetBucketLocationEU(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 120ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testPutBucketEu(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-4] Test testPutBucketEu(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 11ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testPutBucketDefault(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 28ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testUploadPart(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testUploadPart(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 142ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testAllRegions(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-1] Test testAbortMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 308ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testBucketExists(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-1] Test testBucketExists(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 11ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testCopyObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testAllRegions(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 66ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testCopyObjectInvalidName(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testCopyObjectInvalidName(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 1ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testDeleteBucketIfEmpty(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testDeleteBucketIfEmpty(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 5ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testDeleteObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testDeleteObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 2ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testDisableBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-3] Test testGetBucketLocation(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 378ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test testEnableBucketLoggingOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-5] Test testInitiateMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 380ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testGetBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testDisableBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 19ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test testGetBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-5] Test testGetBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 15ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testGetBucketPayer(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-1] Test testCopyObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 84ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test testGetObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testGetBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 97ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test testGetObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-5] Test testGetBucketPayer(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 98ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testHeadObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-1] Test testGetObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 85ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testListBucket(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-3] Test testEnableBucketLoggingOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 236ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testListOwnedBuckets(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-3] Test testListOwnedBuckets(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 13ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test testNewS3Object(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-3] Test testNewS3Object(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 0ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test testObjectExists(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-1] Test testListBucket(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 138ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
Starting test testPutBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-5] Test testHeadObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 146ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
Starting test testPutObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testGetObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 190ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
Starting test testSetBucketPayerOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testSetBucketPayerOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 17ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testSetBucketPayerRequester(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-2-thread-2] Test testSetBucketPayerRequester(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 17ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
[pool-2-thread-3] Test testObjectExists(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 87ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
[pool-2-thread-5] Test testPutObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 86ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
[pool-2-thread-1] Test testPutBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 107ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
[pool-2-thread-4] Test testPutObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 611ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
Starting test testPutWithReducedRedundancy(org.jclouds.aws.s3.AWSS3ClientExpectTest)
Starting test testLowerLimitFromWhereMultipartBecomeActive(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
Starting test testWhenChunkSizeHasToStartGrowing(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
[pool-5-thread-3] Test testWhenChunkSizeHasToStartGrowing(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 1ms
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
[pool-5-thread-2] Test testLowerLimitFromWhereMultipartBecomeActive(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 2ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
Starting test testWhenPartsExceedsMaxNumberOfParts(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
[pool-5-thread-4] Test testWhenPartsExceedsMaxNumberOfParts(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 0ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
Starting test testWhenPartsHasToStartGrowingFromMagnitudeBase(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
[pool-5-thread-5] Test testWhenPartsHasToStartGrowingFromMagnitudeBase(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 0ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
Starting test testWithTimeout(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest)
Starting test testWithTwoParts(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest)
[pool-5-thread-4] Test testWithTwoParts(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest) succeeded: 164ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
[pool-5-thread-5] Test testWithTimeout(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest) succeeded: 178ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
[pool-5-thread-1] Test testPutWithReducedRedundancy(org.jclouds.aws.s3.AWSS3ClientExpectTest) succeeded: 298ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
Starting test testAllContains(org.jclouds.aws.s3.AWSS3ProviderTest)
Starting test testInRestProperties(org.jclouds.aws.s3.AWSS3ProviderTest)
Starting test testOfTypeContains(org.jclouds.aws.s3.AWSS3ProviderTest)
[pool-6-thread-1] Test testAllContains(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 4ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
[pool-6-thread-3] Test testOfTypeContains(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 4ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
Starting test testWithId(org.jclouds.aws.s3.AWSS3ProviderTest)
[pool-6-thread-4] Test testWithId(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 1ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
[pool-6-thread-2] Test testInRestProperties(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 29ms
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
Starting test testWhenBucketRegionMappingInCache(org.jclouds.aws.s3.binders.AssignCorrectHostnameAndBindAsHostPrefixIfConfiguredTest)
[pool-7-thread-1] Test testWhenBucketRegionMappingInCache(org.jclouds.aws.s3.binders.AssignCorrectHostnameAndBindAsHostPrefixIfConfiguredTest) succeeded: 1ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
Starting test testWhenNoBucketRegionMappingInCache(org.jclouds.aws.s3.binders.AssignCorrectHostnameAndBindAsHostPrefixIfConfiguredTest)
[pool-7-thread-2] Test testWhenNoBucketRegionMappingInCache(org.jclouds.aws.s3.binders.AssignCorrectHostnameAndBindAsHostPrefixIfConfiguredTest) succeeded: 1ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
Starting test testNullIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
[pool-8-thread-4] Test testNullIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 1ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
Starting test testMustBeObjectMetadata(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testNoKeyIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
[pool-8-thread-2] Test testMustBeObjectMetadata(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 1ms
Test suite progress: tests succeeded: 46, failed: 0, skipped: 0.
[pool-8-thread-3] Test testNoKeyIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 1ms
Test suite progress: tests succeeded: 47, failed: 0, skipped: 0.
Starting test testExtendedPropertiesBind(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
[pool-8-thread-5] Test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 1ms
Test suite progress: tests succeeded: 48, failed: 0, skipped: 0.
[pool-8-thread-1] Test testExtendedPropertiesBind(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 2ms
Test suite progress: tests succeeded: 49, failed: 0, skipped: 0.
Starting test testEmptyIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
[pool-9-thread-1] Test testEmptyIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 0ms
Test suite progress: tests succeeded: 50, failed: 0, skipped: 0.
Starting test testNullIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
[pool-9-thread-2] Test testNullIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 0ms
Test suite progress: tests succeeded: 51, failed: 0, skipped: 0.
Starting test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
[pool-9-thread-3] Test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 0ms
Test suite progress: tests succeeded: 52, failed: 0, skipped: 0.
Starting test test(org.jclouds.aws.s3.functions.ETagFromHttpResponseViaRegexTest)
[pool-10-thread-1] Test test(org.jclouds.aws.s3.functions.ETagFromHttpResponseViaRegexTest) succeeded: 1ms
Test suite progress: tests succeeded: 53, failed: 0, skipped: 0.
Starting test test(org.jclouds.aws.s3.functions.UploadIdFromHttpResponseViaRegexTest)
[pool-11-thread-1] Test test(org.jclouds.aws.s3.functions.UploadIdFromHttpResponseViaRegexTest) succeeded: 1ms
Test suite progress: tests succeeded: 54, failed: 0, skipped: 0.
Tests run: 54, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.543 sec

Results :

Tests run: 54, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- clojure-maven-plugin:1.3.8:test (test-clojure) @ aws-s3 ---

Testing com.theoryinpractise.clojure.testrunner

Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:bundle (default-bundle) @ aws-s3 ---
[INFO] 
[INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ aws-s3 ---
[INFO] Building jar: /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/aws-s3-1.3.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:2.8:jar (javadoc) @ aws-s3 ---
[INFO] Skipping javadoc generation
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ aws-s3 ---
[INFO] Building jar: /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/aws-s3-1.3.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.10:test (integration) @ aws-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/surefire-reports
[INFO] Using configured provider org.apache.maven.surefire.testng.TestNGProvider

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
*** containers to test: [adriancole-blobstore0, adriancole-blobstore1, adriancole-blobstore2, adriancole-blobstore3, adriancole-blobstore4, adriancole-blobstore5, adriancole-blobstore6, adriancole-blobstore7, adriancole-blobstore8, adriancole-blobstore9, adriancole-blobstore10, adriancole-blobstore11, adriancole-blobstore12, adriancole-blobstore13, adriancole-blobstore14, adriancole-blobstore15, adriancole-blobstore16, adriancole-blobstore17, adriancole-blobstore18, adriancole-blobstore19, adriancole-blobstore20, adriancole-blobstore21, adriancole-blobstore22, adriancole-blobstore23, adriancole-blobstore24]
Starting test testSignGetUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
Starting test testCopyUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobLiveTest)
Starting test testMultipartChunkedFileStream(org.jclouds.aws.s3.AWSS3ClientLiveTest)
Starting test testContains(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
Starting test blobNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test blobNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 23244ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testSignGetUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 23978ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testSignGetUrlOptions(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[TestNG] Test testContains(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 23974ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testCopyUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobLiveTest) succeeded: 26336ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 2508ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test containerExists(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testMultipartChunkedFileStream(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 33724ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testMultipartSynchronously(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22660ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testSignGetUrlOptions(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 22084ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testSignPutUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[TestNG] Test containerExists(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 21022ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test deleteContainerIfEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore12...
unable to delete container adriancole-blobstore12, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore12.s3.amazonaws.com not found: The specified bucket does not exist
	at org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:74)
	at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:200)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:165)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:134)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribingExecutorService.submit(ExecutorServiceModule.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:131)
	at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
	at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy74.listBucket(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:137)
	at $Proxy75.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:151)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:146)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:135)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:81)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:158)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:147)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:174)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:172)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:172)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:163)
	at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.deleteContainer(Unknown Source)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.deleteContainerOrWarnIfUnable(BaseBlobStoreIntegrationTest.java:165)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.access$000(BaseBlobStoreIntegrationTest.java:61)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest$7.run(BaseBlobStoreIntegrationTest.java:422)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribingExecutorService.submit(ExecutorServiceModule.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:131)
	at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
	at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy74.listBucket(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:137)
	at $Proxy75.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:151)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:146)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:135)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:81)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:158)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:147)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:174)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:172)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:172)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:163)
	at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.deleteContainer(Unknown Source)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.deleteContainerOrWarnIfUnable(BaseBlobStoreIntegrationTest.java:165)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.access$000(BaseBlobStoreIntegrationTest.java:61)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest$7.run(BaseBlobStoreIntegrationTest.java:422)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
[TestNG] Test deleteContainerIfEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 7644ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test deleteContainerWithContents(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore13...
[TestNG] Test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 38637ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
unable to delete container adriancole-blobstore13, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore13.s3.amazonaws.com not found: The specified bucket does not exist
	at org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:74)
	at org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
	at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:200)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:165)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:134)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribingExecutorService.submit(ExecutorServiceModule.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:131)
	at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
	at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy74.listBucket(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:137)
	at $Proxy75.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:151)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:146)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:96)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:81)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:158)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:147)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:174)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:172)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:172)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:163)
	at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.deleteContainer(Unknown Source)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.deleteContainerOrWarnIfUnable(BaseBlobStoreIntegrationTest.java:165)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.access$000(BaseBlobStoreIntegrationTest.java:61)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest$7.run(BaseBlobStoreIntegrationTest.java:422)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribingExecutorService.submit(ExecutorServiceModule.java:182)
	at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:131)
	at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
	at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy74.listBucket(Unknown Source)
	at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:137)
	at $Proxy75.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:151)
	at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:146)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:96)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:81)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:158)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:147)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:174)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:172)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:172)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:163)
	at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
	at $Proxy58.deleteContainer(Unknown Source)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.deleteContainerOrWarnIfUnable(BaseBlobStoreIntegrationTest.java:165)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.access$000(BaseBlobStoreIntegrationTest.java:61)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest$7.run(BaseBlobStoreIntegrationTest.java:422)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19166ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test deleteContainerWithContents(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 8279ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testClearWhenContentsUnderPath(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testSignPutUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 20467ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test testSignRemoveUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[TestNG] Test testMultipartSynchronously(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 33376ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testPutWithReducedRedundancyStorage(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testPutWithReducedRedundancyStorage(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 19438ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test deleteContainerIfEmptyButHasContents(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22488ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 25012ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testClearWhenContentsUnderPath(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 27603ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testSignRemoveUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 27167ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testPublicAccess(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerLiveTest)
*** allocated new container adriancole-blobstore23...
*** allocated new container adriancole-blobstore2328...
[TestNG] Test testPublicAccess(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerLiveTest) succeeded: 7583ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test testContainsBytesValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test deleteContainerIfEmptyButHasContents(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 19810ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test deleteContainerIfEmptyNotFound(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteContainerIfEmptyNotFound(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 1392ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
Starting test testCopyCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20887ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 23946ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testContainsBytesValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24223ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testContainsFileValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 35387ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22318ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testCopyCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 38495ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
Starting test testCopyIfMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 35289ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
Starting test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testContainsFileValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 25386ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
Starting test testContainsInputStreamValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 22532ms
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
Starting test testListContainerMarker(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20558ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 24979ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 29514ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
Starting test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testContainsInputStreamValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 25883ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
Starting test testContainsStringValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainerMarker(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 38130ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
Starting test testListContainerMaxResults(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testCopyIfMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 43961ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
Starting test testCopyIfModifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19214ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testContainsStringValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 19995ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
Starting test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 22650ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
Starting test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 26032ms
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testListContainerMaxResults(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 32965ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
Starting test testListContainerPrefix(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 24516ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
Starting test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 26790ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
Starting test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testCopyIfModifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 35599ms
Test suite progress: tests succeeded: 46, failed: 0, skipped: 0.
Starting test testCopyIfNoneMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22915ms
Test suite progress: tests succeeded: 47, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 21878ms
Test suite progress: tests succeeded: 48, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24995ms
Test suite progress: tests succeeded: 49, failed: 0, skipped: 0.
Starting test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainerPrefix(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 32752ms
Test suite progress: tests succeeded: 50, failed: 0, skipped: 0.
Starting test testListRootUsesDelimiter(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testCopyIfNoneMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 37320ms
Test suite progress: tests succeeded: 51, failed: 0, skipped: 0.
Starting test testCopyIfUnmodifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20113ms
Test suite progress: tests succeeded: 52, failed: 0, skipped: 0.
Starting test deleteObjectNoContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test deleteObjectNoContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 1122ms
Test suite progress: tests succeeded: 53, failed: 0, skipped: 0.
Starting test deleteObjectNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 22559ms
Test suite progress: tests succeeded: 54, failed: 0, skipped: 0.
Starting test testPutAllBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListRootUsesDelimiter(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 30551ms
Test suite progress: tests succeeded: 55, failed: 0, skipped: 0.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test deleteObjectNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 23924ms
Test suite progress: tests succeeded: 56, failed: 0, skipped: 0.
Starting test testBigFileGets(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPutAllBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 20025ms
Test suite progress: tests succeeded: 57, failed: 0, skipped: 0.
Starting test testPutAllFiles(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testCopyIfUnmodifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 39757ms
Test suite progress: tests succeeded: 58, failed: 0, skipped: 0.
Starting test testCopyObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 29594ms
Test suite progress: tests succeeded: 59, failed: 0, skipped: 0.
Starting test testWithDetails(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[TestNG] Test testPutAllFiles(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 29090ms
Test suite progress: tests succeeded: 60, failed: 0, skipped: 0.
Starting test testPutAllStrings(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 81542ms
Test suite progress: tests succeeded: 61, failed: 0, skipped: 0.
Starting test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testWithDetails(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 21814ms
Test suite progress: tests succeeded: 62, failed: 0, skipped: 0.
Starting test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest)
[TestNG] Test testPutAllStrings(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 21677ms
Test suite progress: tests succeeded: 63, failed: 0, skipped: 0.
Starting test testPutBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testBigFileGets(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 58577ms
Test suite progress: tests succeeded: 64, failed: 0, skipped: 0.
Starting test testGetIfMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 22077ms
Test suite progress: tests succeeded: 65, failed: 0, skipped: 0.
Starting test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[TestNG] Test testCopyObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 48295ms
Test suite progress: tests succeeded: 66, failed: 0, skipped: 0.
Starting test testCopyWithMetadata(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 16949ms
Test suite progress: tests succeeded: 67, failed: 0, skipped: 0.
Starting test testAllLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest)
*** allocated new container adriancole-blobstore5...
 >> creating container in location [id=EU, scope=REGION, description=EU, parent=aws-s3, iso3166Codes=[IE], metadata={}]
 << call complete.. checking
[TestNG] Test testPutBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24952ms
Test suite progress: tests succeeded: 68, failed: 0, skipped: 0.
Starting test testPutFile(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testGetIfMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 24907ms
Test suite progress: tests succeeded: 69, failed: 0, skipped: 0.
Starting test testGetIfModifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 24175ms
Test suite progress: tests succeeded: 70, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore530...
*** allocated new container adriancole-blobstore9...
 >> creating container in location [id=us-standard, scope=REGION, description=us-standard, parent=aws-s3, iso3166Codes=[US], metadata={}]
 << call complete.. checking
[TestNG] Test testCopyWithMetadata(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 38851ms
Test suite progress: tests succeeded: 71, failed: 0, skipped: 0.
Starting test testMetadataContentEncoding(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testPutFile(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24056ms
Test suite progress: tests succeeded: 72, failed: 0, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 18320ms
Test suite progress: tests succeeded: 73, failed: 0, skipped: 0.
[TestNG] Test testGetIfModifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 24688ms
Test suite progress: tests succeeded: 74, failed: 0, skipped: 0.
Starting test testGetIfNoneMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore932...
[TestNG] Test testMetadataContentEncoding(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 17885ms
Test suite progress: tests succeeded: 75, failed: 0, skipped: 0.
Starting test testMetadataWithCacheControlAndContentDisposition(org.jclouds.aws.s3.AWSS3ClientLiveTest)
*** allocated new container adriancole-blobstore17...
 >> creating container in location [id=us-west-1, scope=REGION, description=us-west-1, parent=aws-s3, iso3166Codes=[US-CA], metadata={}]
 << call complete.. checking
[TestNG] Test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 25611ms
Test suite progress: tests succeeded: 76, failed: 0, skipped: 0.
Starting test testPutString(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore1734...
[TestNG] Test testGetIfNoneMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 27115ms
Test suite progress: tests succeeded: 77, failed: 0, skipped: 0.
Starting test testGetIfUnmodifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testMetadataWithCacheControlAndContentDisposition(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 22757ms
Test suite progress: tests succeeded: 78, failed: 0, skipped: 0.
Starting test testPrivateAclIsDefaultForObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
*** allocated new container adriancole-blobstore22...
 >> creating container in location [id=us-west-2, scope=REGION, description=us-west-2, parent=aws-s3, iso3166Codes=[US-OR], metadata={}]
 << call complete.. checking
[TestNG] Test testPrivateAclIsDefaultForObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 14831ms
Test suite progress: tests succeeded: 79, failed: 0, skipped: 0.
Starting test testPublicReadOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testPutString(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 30048ms
Test suite progress: tests succeeded: 80, failed: 0, skipped: 0.
Starting test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testGetIfUnmodifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22919ms
Test suite progress: tests succeeded: 81, failed: 0, skipped: 0.
Starting test testGetRange(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore2236...
*** allocated new container adriancole-blobstore2...
 >> creating container in location [id=sa-east-1, scope=REGION, description=sa-east-1, parent=aws-s3, iso3166Codes=[BR-SP], metadata={}]
 << call complete.. checking
[TestNG] Test testPublicReadOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 23904ms
Test suite progress: tests succeeded: 82, failed: 0, skipped: 0.
Starting test testPublicWriteOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 23301ms
Test suite progress: tests succeeded: 83, failed: 0, skipped: 0.
Starting test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testGetRange(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 23568ms
Test suite progress: tests succeeded: 84, failed: 0, skipped: 0.
Starting test testGetTwoRanges(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore238...
*** allocated new container adriancole-blobstore6...
 >> creating container in location [id=ap-southeast-1, scope=REGION, description=ap-southeast-1, parent=aws-s3, iso3166Codes=[SG], metadata={}]
 << call complete.. checking
[TestNG] Test testPublicWriteOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 18940ms
Test suite progress: tests succeeded: 85, failed: 0, skipped: 0.
Starting test testPutCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24518ms
Test suite progress: tests succeeded: 86, failed: 0, skipped: 0.
Starting test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testGetTwoRanges(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 25519ms
Test suite progress: tests succeeded: 87, failed: 0, skipped: 0.
Starting test testMetadata(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore640...
*** allocated new container adriancole-blobstore15...
 >> creating container in location [id=ap-northeast-1, scope=REGION, description=ap-northeast-1, parent=aws-s3, iso3166Codes=[JP-13], metadata={}]
 << call complete.. checking
[TestNG] Test testPutCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 18176ms
Test suite progress: tests succeeded: 88, failed: 0, skipped: 0.
Starting test testUpdateObjectACL(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[TestNG] Test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 25097ms
Test suite progress: tests succeeded: 89, failed: 0, skipped: 0.
Starting test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testMetadata(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22925ms
Test suite progress: tests succeeded: 90, failed: 0, skipped: 0.
Starting test testPutFileParallel(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testUpdateObjectACL(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 14502ms
Test suite progress: tests succeeded: 91, failed: 0, skipped: 0.
*** allocated new container adriancole-blobstore1542...
[TestNG] Test testAllLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 168783ms
Test suite progress: tests succeeded: 92, failed: 0, skipped: 0.
Starting test testGetAssignableLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest)
location [id=EU, scope=REGION, description=EU, parent=aws-s3, iso3166Codes=[IE], metadata={}]
location [id=us-standard, scope=REGION, description=us-standard, parent=aws-s3, iso3166Codes=[US], metadata={}]
location [id=us-west-1, scope=REGION, description=us-west-1, parent=aws-s3, iso3166Codes=[US-CA], metadata={}]
location [id=us-west-2, scope=REGION, description=us-west-2, parent=aws-s3, iso3166Codes=[US-OR], metadata={}]
location [id=sa-east-1, scope=REGION, description=sa-east-1, parent=aws-s3, iso3166Codes=[BR-SP], metadata={}]
location [id=ap-southeast-1, scope=REGION, description=ap-southeast-1, parent=aws-s3, iso3166Codes=[SG], metadata={}]
location [id=ap-northeast-1, scope=REGION, description=ap-northeast-1, parent=aws-s3, iso3166Codes=[JP-13], metadata={}]
[TestNG] Test testGetAssignableLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 2ms
Test suite progress: tests succeeded: 93, failed: 0, skipped: 0.
[TestNG] Test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 48261ms
Test suite progress: tests succeeded: 94, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testPutFileParallel(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 49180ms
Test suite progress: tests succeeded: 95, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 21365ms
Test suite progress: tests succeeded: 96, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22874ms
Test suite progress: tests succeeded: 97, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 58320ms
Test suite progress: tests succeeded: 98, failed: 0, skipped: 0.
Starting test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 23789ms
Test suite progress: tests succeeded: 99, failed: 0, skipped: 0.
Starting test testPutObjectStream(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[TestNG] Test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24039ms
Test suite progress: tests succeeded: 100, failed: 0, skipped: 0.
Starting test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testPutObjectStream(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 17777ms
Test suite progress: tests succeeded: 101, failed: 0, skipped: 0.
[TestNG] Test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 28023ms
Test suite progress: tests succeeded: 102, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[TestNG] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 27128ms
Test suite progress: tests succeeded: 103, failed: 0, skipped: 0.
Tests run: 103, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 917.052 sec

Results :

Tests run: 103, Failures: 0, Errors: 0, Skipped: 0

[INFO] 
[INFO] --- maven-install-plugin:2.3:install (default-install) @ aws-s3 ---
[INFO] Installing /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/aws-s3-1.3.0-SNAPSHOT.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.3.0-SNAPSHOT/aws-s3-1.3.0-SNAPSHOT.jar
[INFO] Installing /Users/adriancole/workspace/git/jclouds/providers/aws-s3/pom.xml to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.3.0-SNAPSHOT/aws-s3-1.3.0-SNAPSHOT.pom
[INFO] Installing /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/aws-s3-1.3.0-SNAPSHOT-sources.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.3.0-SNAPSHOT/aws-s3-1.3.0-SNAPSHOT-sources.jar
[INFO] Installing /Users/adriancole/workspace/git/jclouds/providers/aws-s3/target/aws-s3-1.3.0-SNAPSHOT-tests.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.3.0-SNAPSHOT/aws-s3-1.3.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:install (default-install) @ aws-s3 ---
[INFO] Installing org/jclouds/provider/aws-s3/1.3.0-SNAPSHOT/aws-s3-1.3.0-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15:41.347s
[INFO] Finished at: Sun Jan 15 14:47:47 PST 2012
[INFO] Final Memory: 20M/265M
[INFO] ------------------------------------------------------------------------
