[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.provider:aws-s3:bundle:1.2.2-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.2.2-SNAPSHOT (/Users/adriancole/workspace/git/1.2.0/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.2.2-SNAPSHOT, /Users/adriancole/workspace/git/1.2.0/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.2.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ aws-s3 ---
[INFO] Deleting /Users/adriancole/workspace/git/1.2.0/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/1.2.0/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 21 source files to /Users/adriancole/workspace/git/1.2.0/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/1.2.0/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 19 source files to /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.5:test (default-test) @ aws-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
Starting test testNullIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
Starting test testEmptyIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest)
[pool-2-thread-3] Test testNullIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 30ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
[pool-2-thread-2] Test testEmptyIsBad(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 30ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
[pool-2-thread-1] Test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindPartIdsAndETagsToRequestTest) succeeded: 91ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testPutBucketEu(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testAllRegions(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testDisableBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testDeleteObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testAllRegions(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 80ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testBucketExists(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testBucketExists(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 490ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testGetBucketPayer(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-1] Test testDeleteObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 590ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testHeadObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-1] Test testHeadObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 25ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testNewS3Object(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-1] Test testNewS3Object(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 1ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testListOwnedBuckets(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-3] Test testPutBucketEu(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 629ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testListBucket(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-5] Test testDisableBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 653ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test testCopyObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-5] Test testCopyObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 38ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testSetBucketPayerOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testGetBucketPayer(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 128ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test testAbortMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-3] Test testListBucket(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 69ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
[pool-3-thread-1] Test testListOwnedBuckets(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 80ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
[pool-3-thread-5] Test testSetBucketPayerOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 7ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testGetBucketLocation(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testGetBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testDeleteBucketIfEmpty(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-3] Test testGetBucketLogging(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 11ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
[pool-3-thread-2] Test testAbortMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 16ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test testObjectExists(org.jclouds.aws.s3.AWSS3AsyncClientTest)
Starting test testCompleteMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-1] Test testDeleteBucketIfEmpty(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 13ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testInitiateMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testCompleteMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 8ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testGetObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testGetObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 52ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testPutObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-3] Test testObjectExists(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 144ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test testPutBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testPutObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 868ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test testUploadPart(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testUploadPart(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 7ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
Starting test testGetBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testGetBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 2ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
Starting test testSetBucketPayerRequester(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testSetBucketPayerRequester(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 2ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
Starting test testCopyObjectInvalidName(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testCopyObjectInvalidName(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 1ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testGetBucketLocationEU(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testGetBucketLocationEU(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 16ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
Starting test testPutBucketDefault(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-2] Test testPutObjectACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 153ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
Starting test testGetObject(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-3] Test testPutBucketACL(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 70ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
Starting test testEnableBucketLoggingOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest)
[pool-3-thread-4] Test testPutBucketDefault(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 13ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
[pool-3-thread-3] Test testEnableBucketLoggingOwner(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 11ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
[pool-3-thread-2] Test testGetObject(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 22ms
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
[pool-3-thread-1] Test testInitiateMultipartUpload(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 2834ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
[pool-3-thread-5] Test testGetBucketLocation(org.jclouds.aws.s3.AWSS3AsyncClientTest) succeeded: 2864ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
Starting test testMustBeObjectMetadata(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testExtendedPropertiesBind(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testNoKeyIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
Starting test testNullIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest)
[pool-6-thread-2] Test testNoKeyIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 0ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
[pool-6-thread-4] Test testNullIsBad(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 1ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
[pool-6-thread-5] Test testMustBeObjectMetadata(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 10ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
[pool-6-thread-3] Test testPassWithMinimumDetailsAndPayload5GB(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 6ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
[pool-6-thread-1] Test testExtendedPropertiesBind(org.jclouds.aws.s3.binders.BindObjectMetadataToRequestTest) succeeded: 8ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
Starting test testWithTwoParts(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest)
Starting test testLowerLimitFromWhereMultipartBecomeActive(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
Starting test testWithTimeout(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest)
Starting test testWhenPartsExceedsMaxNumberOfParts(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
Starting test testWhenPartsHasToStartGrowingFromMagnitudeBase(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
[pool-7-thread-3] Test testWhenPartsHasToStartGrowingFromMagnitudeBase(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 2ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
Starting test testWhenChunkSizeHasToStartGrowing(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest)
[pool-7-thread-4] Test testWhenPartsExceedsMaxNumberOfParts(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 2ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
[pool-7-thread-3] Test testWhenChunkSizeHasToStartGrowing(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 5ms
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
[pool-7-thread-5] Test testLowerLimitFromWhereMultipartBecomeActive(org.jclouds.aws.s3.blobstore.strategy.internal.MpuPartitioningAlgorithmTest) succeeded: 31ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
[pool-7-thread-1] Test testWithTwoParts(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest) succeeded: 252ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
[pool-7-thread-2] Test testWithTimeout(org.jclouds.aws.s3.blobstore.strategy.internal.SequentialMultipartUploadStrategyTest) succeeded: 239ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
Starting test test(org.jclouds.aws.s3.functions.ETagFromHttpResponseViaRegexTest)
[pool-8-thread-1] Test test(org.jclouds.aws.s3.functions.ETagFromHttpResponseViaRegexTest) succeeded: 2ms
Test suite progress: tests succeeded: 46, failed: 0, skipped: 0.
Starting test testInRestProperties(org.jclouds.aws.s3.AWSS3ProviderTest)
Starting test testWithId(org.jclouds.aws.s3.AWSS3ProviderTest)
Starting test testOfTypeContains(org.jclouds.aws.s3.AWSS3ProviderTest)
Starting test testAllContains(org.jclouds.aws.s3.AWSS3ProviderTest)
[pool-9-thread-3] Test testAllContains(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 1ms
Test suite progress: tests succeeded: 47, failed: 0, skipped: 0.
[pool-9-thread-2] Test testWithId(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 6ms
Test suite progress: tests succeeded: 48, failed: 0, skipped: 0.
[pool-9-thread-4] Test testOfTypeContains(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 5ms
Test suite progress: tests succeeded: 49, failed: 0, skipped: 0.
[pool-9-thread-1] Test testInRestProperties(org.jclouds.aws.s3.AWSS3ProviderTest) succeeded: 18ms
Test suite progress: tests succeeded: 50, failed: 0, skipped: 0.
Starting test test(org.jclouds.aws.s3.functions.UploadIdFromHttpResponseViaRegexTest)
[pool-10-thread-1] Test test(org.jclouds.aws.s3.functions.UploadIdFromHttpResponseViaRegexTest) succeeded: 0ms
Test suite progress: tests succeeded: 51, failed: 0, skipped: 0.
Tests run: 51, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.89 sec

Results :

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

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

Testing user

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/1.2.0/jclouds/providers/aws-s3/target/aws-s3-1.2.2-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/1.2.0/jclouds/providers/aws-s3/target/aws-s3-1.2.2-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.5:test (integration) @ aws-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/surefire-reports

-------------------------------------------------------
 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 containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest)
Starting test blobNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
Starting test testPublicAccess(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerLiveTest)
Starting test testContains(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
Starting test testContainsBytesValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore1...
*** allocated new container adriancole-blobstore126...
[pool-4-thread-1] Test testPublicAccess(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerLiveTest) succeeded: 10136ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testMultipartChunkedFileStream(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-4] Test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 20281ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testAllLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest)
[pool-4-thread-5] Test blobNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20974ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testContainsBytesValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 21984ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testContainsFileValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore5...
 >> creating container in location [id=EU, scope=REGION, description=EU, parent=aws-s3, iso3166Codes=[IE], metadata={}]
 << call complete.. checking
[pool-4-thread-3] Test testContains(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 23243ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore528...
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19100ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testContainsFileValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 19620ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testContainsInputStreamValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testMultipartChunkedFileStream(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 32272ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
Starting test testMultipartSynchronously(org.jclouds.aws.s3.AWSS3ClientLiveTest)
*** allocated new container adriancole-blobstore11...
 >> creating container in location [id=us-standard, scope=REGION, description=us-standard, parent=aws-s3, iso3166Codes=[US], metadata={}]
 << call complete.. checking
[pool-4-thread-3] Test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 34425ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
Starting test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20568ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore1130...
[pool-4-thread-2] Test testContainsInputStreamValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 20862ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
Starting test testContainsStringValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore16...
 >> creating container in location [id=us-west-1, scope=REGION, description=us-west-1, parent=aws-s3, iso3166Codes=[US-CA], metadata={}]
 << call complete.. checking
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20822ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-3] Test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 23907ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-2] Test testContainsStringValue(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 21210ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore1632...
*** allocated new container adriancole-blobstore20...
 >> creating container in location [id=ap-southeast-1, scope=REGION, description=ap-southeast-1, parent=aws-s3, iso3166Codes=[SG], metadata={}]
 << call complete.. checking
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22555ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-1] Test testMultipartSynchronously(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 61207ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test deleteContainerIfEmptyButHasContents(org.jclouds.aws.s3.AWSS3ClientLiveTest)
*** allocated new container adriancole-blobstore2034...
[pool-4-thread-3] Test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 27553ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
*** allocated new container adriancole-blobstore24...
 >> creating container in location [id=ap-northeast-1, scope=REGION, description=ap-northeast-1, parent=aws-s3, iso3166Codes=[JP-13], metadata={}]
 << call complete.. checking
[pool-4-thread-2] Test testEntrySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 33724ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test deleteContainerIfEmptyButHasContents(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 16057ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test deleteContainerIfEmptyNotFound(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-1] Test deleteContainerIfEmptyNotFound(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 288ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testCopyCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 18926ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
*** allocated new container adriancole-blobstore2436...
[pool-4-thread-4] Test testAllLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 115227ms
Test suite progress: tests succeeded: 22, 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=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={}]
[pool-4-thread-4] Test testGetAssignableLocations(org.jclouds.aws.s3.blobstore.integration.AWSS3ServiceIntegrationLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
Starting test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-4] Test containerDoesntExist(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 2582ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
Starting test containerExists(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-2] Test testPut(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 22512ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
[pool-4-thread-3] Test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 30795ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
Starting test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
Starting test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20872ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-4] Test containerExists(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 18108ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
Starting test deleteContainerIfEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-1] Test testCopyCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 36064ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
Starting test testCopyIfMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest)
*** allocated new container adriancole-blobstore10...
unable to delete container adriancole-blobstore10, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore10.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:88)
	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:72)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy69.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:140)
	at $Proxy70.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	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 $Proxy71.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:145)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:94)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:87)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:166)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:155)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:173)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:171)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:171)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:162)
	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)
[pool-4-thread-2] Test testPutAll(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24447ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
Starting test testPutAllBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 24477ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
Starting test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20727ms
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-4] Test deleteContainerIfEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 8105ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
Starting test deleteContainerWithContents(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore18...
unable to delete container adriancole-blobstore18, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore18.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:88)
	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:72)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy69.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:140)
	at $Proxy70.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	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 $Proxy71.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:145)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:94)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:87)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:166)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:155)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:173)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:171)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:171)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:162)
	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:72)
	at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFuture(AsyncRestClientProxy.java:156)
	at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:126)
	at $Proxy69.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:140)
	at $Proxy70.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	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 $Proxy71.list(Unknown Source)
	at org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists.execute(ConcatenateContainerLists.java:59)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.getResourcesToDelete(DeleteAllKeysInList.java:145)
	at org.jclouds.blobstore.strategy.internal.DeleteAllKeysInList.execute(DeleteAllKeysInList.java:94)
	at org.jclouds.blobstore.util.internal.BlobUtilsImpl.clearContainer(BlobUtilsImpl.java:87)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:166)
	at org.jclouds.blobstore.internal.BaseBlobStore.clearContainer(BaseBlobStore.java:155)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:173)
	at org.jclouds.s3.blobstore.S3BlobStore$2.get(S3BlobStore.java:171)
	at org.jclouds.util.Assertions.eventuallyTrue(Assertions.java:33)
	at org.jclouds.s3.blobstore.S3BlobStore.clearAndDeleteContainer(S3BlobStore.java:171)
	at org.jclouds.s3.blobstore.S3BlobStore.deleteContainer(S3BlobStore.java:162)
	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)
[pool-4-thread-4] Test deleteContainerWithContents(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 9901ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
Starting test testClearWhenContentsUnderPath(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 18327ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-3] Test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 21324ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
Starting test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-2] Test testPutAllBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 24596ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
Starting test testPutAllFiles(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testCopyIfMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 33437ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
Starting test testCopyIfModifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-4] Test testClearWhenContentsUnderPath(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 27617ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20386ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-3] Test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 20436ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
Starting test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-2] Test testPutAllFiles(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 21246ms
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
Starting test testPutAllStrings(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testCopyIfModifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 33088ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
Starting test testCopyIfNoneMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20393ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
Starting test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-3] Test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 19922ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-2] Test testPutAllStrings(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 23020ms
Test suite progress: tests succeeded: 46, failed: 0, skipped: 0.
Starting test testPutBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-4] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 41426ms
Test suite progress: tests succeeded: 47, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-5] Test deleteObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20054ms
Test suite progress: tests succeeded: 48, failed: 0, skipped: 0.
Starting test deleteObjectNoContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-5] Test deleteObjectNoContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 216ms
Test suite progress: tests succeeded: 49, failed: 0, skipped: 0.
Starting test deleteObjectNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testPutBytes(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 23054ms
Test suite progress: tests succeeded: 50, failed: 0, skipped: 0.
Starting test testPutFile(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testCopyIfNoneMatch(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 33896ms
Test suite progress: tests succeeded: 51, failed: 0, skipped: 0.
Starting test testCopyIfUnmodifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test deleteObjectNotFound(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19519ms
Test suite progress: tests succeeded: 52, failed: 0, skipped: 0.
Starting test testBigFileGets(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-3] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 38900ms
Test suite progress: tests succeeded: 53, failed: 0, skipped: 0.
Starting test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-4] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 27508ms
Test suite progress: tests succeeded: 54, failed: 0, skipped: 0.
Starting test testListContainerMarker(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-2] Test testPutFile(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 31960ms
Test suite progress: tests succeeded: 55, failed: 0, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 32605ms
Test suite progress: tests succeeded: 56, failed: 0, skipped: 0.
Starting test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-4] Test testListContainerMarker(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 29833ms
Test suite progress: tests succeeded: 57, failed: 0, skipped: 0.
Starting test testListContainerMaxResults(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-1] Test testCopyIfUnmodifiedSince(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 48514ms
Test suite progress: tests succeeded: 58, failed: 0, skipped: 0.
Starting test testCopyObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test testBigFileGets(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 42450ms
Test suite progress: tests succeeded: 59, failed: 0, skipped: 0.
Starting test testGetIfMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testPutMoreThanSingleListing(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 26326ms
Test suite progress: tests succeeded: 60, failed: 0, skipped: 0.
Starting test testPutString(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 21049ms
Test suite progress: tests succeeded: 61, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest)
[pool-4-thread-5] Test testGetIfMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20976ms
Test suite progress: tests succeeded: 62, failed: 0, skipped: 0.
Starting test testGetIfModifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-4] Test testListContainerMaxResults(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 32387ms
Test suite progress: tests succeeded: 63, failed: 0, skipped: 0.
Starting test testListContainerPrefix(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-1] Test testCopyObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 30509ms
Test suite progress: tests succeeded: 64, failed: 0, skipped: 0.
Starting test testCopyWithMetadata(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-2] Test testPutString(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 22081ms
Test suite progress: tests succeeded: 65, failed: 0, skipped: 0.
Starting test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobMapIntegrationLiveTest) succeeded: 19981ms
Test suite progress: tests succeeded: 66, failed: 0, skipped: 0.
Starting test testCopyUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobLiveTest)
[pool-4-thread-5] Test testGetIfModifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 26282ms
Test suite progress: tests succeeded: 67, failed: 0, skipped: 0.
Starting test testGetIfNoneMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-4] Test testListContainerPrefix(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 25151ms
Test suite progress: tests succeeded: 68, failed: 0, skipped: 0.
Starting test testListRootUsesDelimiter(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-2] Test testRemove(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 22250ms
Test suite progress: tests succeeded: 69, failed: 0, skipped: 0.
Starting test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testCopyUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobLiveTest) succeeded: 26590ms
Test suite progress: tests succeeded: 70, failed: 0, skipped: 0.
Starting test testSignGetUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[pool-4-thread-5] Test testGetIfNoneMatch(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19503ms
Test suite progress: tests succeeded: 71, failed: 0, skipped: 0.
Starting test testGetIfUnmodifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-1] Test testCopyWithMetadata(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 36768ms
Test suite progress: tests succeeded: 72, failed: 0, skipped: 0.
Starting test testMetadataContentEncoding(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-2] Test testValues(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 20113ms
Test suite progress: tests succeeded: 73, failed: 0, skipped: 0.
Starting test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-4] Test testListRootUsesDelimiter(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 21875ms
Test suite progress: tests succeeded: 74, failed: 0, skipped: 0.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-3] Test testSignGetUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 18435ms
Test suite progress: tests succeeded: 75, failed: 0, skipped: 0.
Starting test testSignGetUrlOptions(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[pool-4-thread-1] Test testMetadataContentEncoding(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 21411ms
Test suite progress: tests succeeded: 76, failed: 0, skipped: 0.
Starting test testMetadataWithCacheControlAndContentDisposition(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test testGetIfUnmodifiedSince(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 26820ms
Test suite progress: tests succeeded: 77, failed: 0, skipped: 0.
Starting test testGetRange(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-4] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 22023ms
Test suite progress: tests succeeded: 78, failed: 0, skipped: 0.
Starting test testWithDetails(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest)
[pool-4-thread-2] Test testClear(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 23704ms
Test suite progress: tests succeeded: 79, failed: 0, skipped: 0.
Starting test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testSignGetUrlOptions(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 20646ms
Test suite progress: tests succeeded: 80, failed: 0, skipped: 0.
Starting test testSignPutUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[pool-4-thread-1] Test testMetadataWithCacheControlAndContentDisposition(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 14638ms
Test suite progress: tests succeeded: 81, failed: 0, skipped: 0.
Starting test testPrivateAclIsDefaultForObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test testGetRange(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 22395ms
Test suite progress: tests succeeded: 82, failed: 0, skipped: 0.
Starting test testGetTwoRanges(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testContainsKey(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 20982ms
Test suite progress: tests succeeded: 83, failed: 0, skipped: 0.
Starting test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-3] Test testSignPutUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 19958ms
Test suite progress: tests succeeded: 84, failed: 0, skipped: 0.
Starting test testSignRemoveUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest)
[pool-4-thread-4] Test testWithDetails(org.jclouds.aws.s3.blobstore.integration.AWSS3ContainerIntegrationLiveTest) succeeded: 25328ms
Test suite progress: tests succeeded: 85, failed: 0, skipped: 0.
[pool-4-thread-1] Test testPrivateAclIsDefaultForObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 21001ms
Test suite progress: tests succeeded: 86, failed: 0, skipped: 0.
Starting test testPublicReadOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test testGetTwoRanges(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 20960ms
Test suite progress: tests succeeded: 87, failed: 0, skipped: 0.
Starting test testMetadata(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-1] Test testPublicReadOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 14585ms
Test suite progress: tests succeeded: 88, failed: 0, skipped: 0.
Starting test testPublicWriteOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-3] Test testSignRemoveUrl(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobSignerLiveTest) succeeded: 20345ms
Test suite progress: tests succeeded: 89, failed: 0, skipped: 0.
[pool-4-thread-5] Test testMetadata(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 21386ms
Test suite progress: tests succeeded: 90, failed: 0, skipped: 0.
[pool-4-thread-2] Test testDirectory(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 40374ms
Test suite progress: tests succeeded: 91, failed: 0, skipped: 0.
Starting test testPutFileParallel(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
Starting test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPublicWriteOnObject(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 20443ms
Test suite progress: tests succeeded: 92, failed: 0, skipped: 0.
Starting test testPutCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-2] Test testIsEmpty(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 42095ms
Test suite progress: tests succeeded: 93, failed: 0, skipped: 0.
Starting test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutCannedAccessPolicyPublic(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 41495ms
Test suite progress: tests succeeded: 94, failed: 0, skipped: 0.
Starting test testUpdateObjectACL(org.jclouds.aws.s3.AWSS3ClientLiveTest)
[pool-4-thread-5] Test testPutFileParallel(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 50354ms
Test suite progress: tests succeeded: 95, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-1] Test testUpdateObjectACL(org.jclouds.aws.s3.AWSS3ClientLiveTest) succeeded: 18039ms
Test suite progress: tests succeeded: 96, failed: 0, skipped: 0.
[pool-4-thread-2] Test testKeySet(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 19960ms
Test suite progress: tests succeeded: 97, failed: 0, skipped: 0.
Starting test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest)
[pool-4-thread-5] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 23616ms
Test suite progress: tests succeeded: 98, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-2] Test testListContainer(org.jclouds.aws.s3.blobstore.integration.AWSS3InputStreamMapIntegrationLiveTest) succeeded: 20839ms
Test suite progress: tests succeeded: 99, failed: 0, skipped: 0.
[pool-4-thread-5] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 18128ms
Test suite progress: tests succeeded: 100, failed: 0, skipped: 0.
Starting test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-5] Test testPutObject(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 28441ms
Test suite progress: tests succeeded: 101, failed: 0, skipped: 0.
Starting test testPutObjectStream(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest)
[pool-4-thread-5] Test testPutObjectStream(org.jclouds.aws.s3.blobstore.integration.AWSS3BlobIntegrationLiveTest) succeeded: 19448ms
Test suite progress: tests succeeded: 102, failed: 0, skipped: 0.
Tests run: 102, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 783.144 sec

Results :

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

[INFO] 
[INFO] --- maven-install-plugin:2.3:install (default-install) @ aws-s3 ---
[INFO] Installing /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/aws-s3-1.2.2-SNAPSHOT.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.2.2-SNAPSHOT/aws-s3-1.2.2-SNAPSHOT.jar
[INFO] Installing /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/pom.xml to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.2.2-SNAPSHOT/aws-s3-1.2.2-SNAPSHOT.pom
[INFO] Installing /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/aws-s3-1.2.2-SNAPSHOT-sources.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.2.2-SNAPSHOT/aws-s3-1.2.2-SNAPSHOT-sources.jar
[INFO] Installing /Users/adriancole/workspace/git/1.2.0/jclouds/providers/aws-s3/target/aws-s3-1.2.2-SNAPSHOT-tests.jar to /Users/adriancole/.m2/repository/org/jclouds/provider/aws-s3/1.2.2-SNAPSHOT/aws-s3-1.2.2-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:install (default-install) @ aws-s3 ---
[INFO] Installing org/jclouds/provider/aws-s3/1.2.2-SNAPSHOT/aws-s3-1.2.2-SNAPSHOT.jar
[INFO] Writing OBR metadata
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13:30.509s
[INFO] Finished at: Tue Oct 18 03:00:53 PDT 2011
[INFO] Final Memory: 19M/125M
[INFO] ------------------------------------------------------------------------
