[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for org.jclouds.provider:eucalyptus-partnercloud-s3:bundle:1.2.0-SNAPSHOT
[WARNING] 'parent.relativePath' of POM org.jclouds:jclouds-project:1.2.0-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.0-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 Eucalyptus Partner Cloud provider 1.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ eucalyptus-partnercloud-s3 ---
[INFO] Deleting /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-maven) @ eucalyptus-partnercloud-s3 ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-banned-dependencies) @ eucalyptus-partnercloud-s3 ---
[INFO] 
[INFO] --- maven-enforcer-plugin:1.0.1:enforce (enforce-java) @ eucalyptus-partnercloud-s3 ---
[INFO] 
[INFO] --- maven-remote-resources-plugin:1.2:process (process-remote-resources) @ eucalyptus-partnercloud-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) @ eucalyptus-partnercloud-s3 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/src/main/clojure
[INFO] Copying 1 resource
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:compile (default-compile) @ eucalyptus-partnercloud-s3 ---
[INFO] Compiling 2 source files to /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.4.2:testResources (default-testResources) @ eucalyptus-partnercloud-s3 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/src/test/clojure
[INFO] skip non existing resourceDirectory /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/src/test/resources
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3:testCompile (default-testCompile) @ eucalyptus-partnercloud-s3 ---
[INFO] Compiling 12 source files to /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.5:test (default-test) @ eucalyptus-partnercloud-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test testInRestProperties(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest)
Starting test testOfTypeContains(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest)
Starting test testAllContains(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest)
Starting test testWithId(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest)
[pool-2-thread-2] Test testWithId(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest) succeeded: 93ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
[pool-2-thread-3] Test testAllContains(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest) succeeded: 101ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
[pool-2-thread-4] Test testOfTypeContains(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest) succeeded: 109ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
[pool-2-thread-1] Test testInRestProperties(org.jclouds.epc.EucalyptusPartnerCloudS3ProviderTest) succeeded: 422ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.831 sec

Results :

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

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

Testing user

Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:bundle (default-bundle) @ eucalyptus-partnercloud-s3 ---
[INFO] 
[INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ eucalyptus-partnercloud-s3 ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/eucalyptus-partnercloud-s3-1.2.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:2.8:jar (javadoc) @ eucalyptus-partnercloud-s3 ---
[INFO] Skipping javadoc generation
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ eucalyptus-partnercloud-s3 ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/eucalyptus-partnercloud-s3-1.2.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.5:test (integration) @ eucalyptus-partnercloud-s3 ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-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]
Starting test containerDoesntExist(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest)
[pool-4-thread-1] Test containerDoesntExist(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest) succeeded: 146ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testAllLocations(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest)
*** allocated new container adriancole-blobstore0...
 >> creating container in location [id=eucalyptus-partnercloud-s3, scope=PROVIDER, description=http://partnercloud.eucalyptus.com:8773/services/Walrus, parent=null, iso3166Codes=[US-CA], metadata={}]
 << call complete.. checking
*** allocated new container adriancole-blobstore016...
[pool-4-thread-1] Test testAllLocations(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest) succeeded: 3202ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testGetAssignableLocations(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest)
[pool-4-thread-1] Test testGetAssignableLocations(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusServiceIntegrationLiveTest) succeeded: 3ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
location [id=eucalyptus-partnercloud-s3, scope=PROVIDER, description=http://partnercloud.eucalyptus.com:8773/services/Walrus, parent=null, iso3166Codes=[US-CA], metadata={}]
Starting test testPublicAccess(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerLiveTest)
*** allocated new container adriancole-blobstore1...
*** allocated new container adriancole-blobstore118...
[pool-4-thread-1] Test testPublicAccess(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerLiveTest) succeeded: 3752ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testCopyUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobLiveTest)
[pool-4-thread-1] Test testCopyUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobLiveTest) succeeded: 6492ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testSignGetUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest)
[pool-4-thread-1] Test testSignGetUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest) succeeded: 1775ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testSignGetUrlOptions(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest)
[pool-4-thread-1] Test testSignGetUrlOptions(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest) failed.
Test suite progress: tests succeeded: 6, failed: 1, skipped: 0.
Starting test testSignPutUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest)
[pool-4-thread-1] Test testSignPutUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest) succeeded: 1626ms
Test suite progress: tests succeeded: 7, failed: 1, skipped: 0.
Starting test testSignRemoveUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest)
[pool-4-thread-1] Test testSignRemoveUrl(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest) succeeded: 1845ms
Test suite progress: tests succeeded: 8, failed: 1, skipped: 0.
Starting test deleteContainerIfEmptyButHasContents(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test deleteContainerIfEmptyButHasContents(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 1632ms
Test suite progress: tests succeeded: 9, failed: 1, skipped: 0.
Starting test deleteContainerIfEmptyNotFound(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test deleteContainerIfEmptyNotFound(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 76ms
Test suite progress: tests succeeded: 10, failed: 1, skipped: 0.
Starting test testCopyCannedAccessPolicyPublic(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyCannedAccessPolicyPublic(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) failed.
Test suite progress: tests succeeded: 10, failed: 2, skipped: 0.
Starting test testCopyIfMatch(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyIfMatch(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 3713ms
Test suite progress: tests succeeded: 11, failed: 2, skipped: 0.
Starting test testCopyIfModifiedSince(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyIfModifiedSince(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 4034ms
Test suite progress: tests succeeded: 12, failed: 2, skipped: 0.
Starting test testCopyIfNoneMatch(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyIfNoneMatch(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 4602ms
Test suite progress: tests succeeded: 13, failed: 2, skipped: 0.
Starting test testCopyIfUnmodifiedSince(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyIfUnmodifiedSince(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 4153ms
Test suite progress: tests succeeded: 14, failed: 2, skipped: 0.
Starting test testCopyObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 3772ms
Test suite progress: tests succeeded: 15, failed: 2, skipped: 0.
Starting test testCopyWithMetadata(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testCopyWithMetadata(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 4410ms
Test suite progress: tests succeeded: 16, failed: 2, skipped: 0.
Starting test testMetadataContentEncoding(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testMetadataContentEncoding(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 1912ms
Test suite progress: tests succeeded: 17, failed: 2, skipped: 0.
Starting test testMetadataWithCacheControlAndContentDisposition(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testMetadataWithCacheControlAndContentDisposition(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 2078ms
Test suite progress: tests succeeded: 18, failed: 2, skipped: 0.
Starting test testPrivateAclIsDefaultForObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testPrivateAclIsDefaultForObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 1649ms
Test suite progress: tests succeeded: 19, failed: 2, skipped: 0.
Starting test testPublicReadOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testPublicReadOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) failed.
Test suite progress: tests succeeded: 19, failed: 3, skipped: 0.
Starting test testPublicWriteOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testPublicWriteOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) failed.
Test suite progress: tests succeeded: 19, failed: 4, skipped: 0.
Starting test testPutCannedAccessPolicyPublic(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testPutCannedAccessPolicyPublic(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) succeeded: 2134ms
Test suite progress: tests succeeded: 20, failed: 4, skipped: 0.
Starting test testUpdateObjectACL(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
[pool-4-thread-1] Test testUpdateObjectACL(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest) failed.
Test suite progress: tests succeeded: 20, failed: 5, skipped: 0.
Starting test testContainsBytesValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsBytesValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2317ms
Test suite progress: tests succeeded: 21, failed: 5, skipped: 0.
Starting test testContainsFileValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsFileValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2264ms
Test suite progress: tests succeeded: 22, failed: 5, skipped: 0.
Starting test testContainsInputStreamValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsInputStreamValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 1898ms
Test suite progress: tests succeeded: 23, failed: 5, skipped: 0.
Starting test testContainsStringValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsStringValue(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 1851ms
Test suite progress: tests succeeded: 24, failed: 5, skipped: 0.
Starting test testEntrySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testEntrySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 4885ms
Test suite progress: tests succeeded: 25, failed: 5, skipped: 0.
Starting test testPut(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPut(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2679ms
Test suite progress: tests succeeded: 26, failed: 5, skipped: 0.
Starting test testPutAll(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAll(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2743ms
Test suite progress: tests succeeded: 27, failed: 5, skipped: 0.
Starting test testPutAllBytes(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllBytes(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2498ms
Test suite progress: tests succeeded: 28, failed: 5, skipped: 0.
Starting test testPutAllFiles(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllFiles(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2840ms
Test suite progress: tests succeeded: 29, failed: 5, skipped: 0.
Starting test testPutAllStrings(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllStrings(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 3334ms
Test suite progress: tests succeeded: 30, failed: 5, skipped: 0.
Starting test testPutBytes(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutBytes(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2659ms
Test suite progress: tests succeeded: 31, failed: 5, skipped: 0.
Starting test testPutFile(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutFile(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2413ms
Test suite progress: tests succeeded: 32, failed: 5, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutMoreThanSingleListing(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 24536ms
Test suite progress: tests succeeded: 33, failed: 5, skipped: 0.
Starting test testPutString(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutString(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2858ms
Test suite progress: tests succeeded: 34, failed: 5, skipped: 0.
Starting test testRemove(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testRemove(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2268ms
Test suite progress: tests succeeded: 35, failed: 5, skipped: 0.
Starting test testValues(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testValues(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2464ms
Test suite progress: tests succeeded: 36, failed: 5, skipped: 0.
Starting test testClear(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testClear(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2368ms
Test suite progress: tests succeeded: 37, failed: 5, skipped: 0.
Starting test testContainsKey(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsKey(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2354ms
Test suite progress: tests succeeded: 38, failed: 5, skipped: 0.
Starting test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 10391ms
Test suite progress: tests succeeded: 39, failed: 5, skipped: 0.
Starting test testIsEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testIsEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2966ms
Test suite progress: tests succeeded: 40, failed: 5, skipped: 0.
Starting test testKeySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testKeySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 2436ms
Test suite progress: tests succeeded: 41, failed: 5, skipped: 0.
Starting test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusInputStreamMapIntegrationLiveTest) succeeded: 1680ms
Test suite progress: tests succeeded: 42, failed: 5, skipped: 0.
Starting test containerDoesntExist(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test containerDoesntExist(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 193ms
Test suite progress: tests succeeded: 43, failed: 5, skipped: 0.
Starting test containerExists(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test containerExists(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 1698ms
Test suite progress: tests succeeded: 44, failed: 5, skipped: 0.
Starting test deleteContainerIfEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore13...
unable to delete container adriancole-blobstore13, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore13 not found: The specified bucket was not found
	at org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:81)
	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 $Proxy67.listBucket(Unknown Source)
	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 org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:140)
	at $Proxy68.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	at sun.reflect.GeneratedMethodAccessor8.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 $Proxy69.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 $Proxy67.listBucket(Unknown Source)
	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 org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:140)
	at $Proxy68.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	at sun.reflect.GeneratedMethodAccessor8.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 $Proxy69.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-1] Test deleteContainerIfEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 3520ms
Test suite progress: tests succeeded: 45, failed: 5, skipped: 0.
Starting test deleteContainerWithContents(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore14...
unable to delete container adriancole-blobstore14, ignoring...
org.jclouds.blobstore.ContainerNotFoundException: adriancole-blobstore14 not found: The specified bucket was not found
	at org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:81)
	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 $Proxy67.listBucket(Unknown Source)
	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 org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:140)
	at $Proxy68.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	at sun.reflect.GeneratedMethodAccessor8.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 $Proxy69.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 $Proxy67.listBucket(Unknown Source)
	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 org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:140)
	at $Proxy68.listBucket(Unknown Source)
	at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:150)
	at sun.reflect.GeneratedMethodAccessor8.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 $Proxy69.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-1] Test deleteContainerWithContents(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 4224ms
Test suite progress: tests succeeded: 46, failed: 5, skipped: 0.
Starting test testClearWhenContentsUnderPath(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testClearWhenContentsUnderPath(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 3599ms
Test suite progress: tests succeeded: 47, failed: 5, skipped: 0.
Starting test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 7405ms
Test suite progress: tests succeeded: 48, failed: 5, skipped: 0.
Starting test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 3418ms
Test suite progress: tests succeeded: 49, failed: 5, skipped: 0.
Starting test testListContainerMarker(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerMarker(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 49, failed: 6, skipped: 0.
Starting test testListContainerMaxResults(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerMaxResults(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 6197ms
Test suite progress: tests succeeded: 50, failed: 6, skipped: 0.
Starting test testListContainerPrefix(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerPrefix(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 7022ms
Test suite progress: tests succeeded: 51, failed: 6, skipped: 0.
Starting test testListRootUsesDelimiter(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListRootUsesDelimiter(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 7479ms
Test suite progress: tests succeeded: 52, failed: 6, skipped: 0.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 2011ms
Test suite progress: tests succeeded: 53, failed: 6, skipped: 0.
Starting test testWithDetails(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
[pool-4-thread-1] Test testWithDetails(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest) succeeded: 1961ms
Test suite progress: tests succeeded: 54, failed: 6, skipped: 0.
Starting test testContains(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testContains(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 1704ms
Test suite progress: tests succeeded: 55, failed: 6, skipped: 0.
Starting test testEntrySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testEntrySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 4195ms
Test suite progress: tests succeeded: 56, failed: 6, skipped: 0.
Starting test testPut(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPut(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 3268ms
Test suite progress: tests succeeded: 57, failed: 6, skipped: 0.
Starting test testPutAll(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAll(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 2312ms
Test suite progress: tests succeeded: 58, failed: 6, skipped: 0.
Starting test testPutMoreThanSingleListing(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutMoreThanSingleListing(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 58, failed: 7, skipped: 0.
Starting test testRemove(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testRemove(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 3198ms
Test suite progress: tests succeeded: 59, failed: 7, skipped: 0.
Starting test testValues(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testValues(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 3571ms
Test suite progress: tests succeeded: 60, failed: 7, skipped: 0.
Starting test testClear(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testClear(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 3799ms
Test suite progress: tests succeeded: 61, failed: 7, skipped: 0.
Starting test testContainsKey(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsKey(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 3156ms
Test suite progress: tests succeeded: 62, failed: 7, skipped: 0.
Starting test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 15936ms
Test suite progress: tests succeeded: 63, failed: 7, skipped: 0.
Starting test testIsEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testIsEmpty(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 1865ms
Test suite progress: tests succeeded: 64, failed: 7, skipped: 0.
Starting test testKeySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testKeySet(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 1912ms
Test suite progress: tests succeeded: 65, failed: 7, skipped: 0.
Starting test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest) succeeded: 1796ms
Test suite progress: tests succeeded: 66, failed: 7, skipped: 0.
Starting test blobNotFound(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test blobNotFound(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1585ms
Test suite progress: tests succeeded: 67, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1930ms
Test suite progress: tests succeeded: 68, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 5857ms
Test suite progress: tests succeeded: 69, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1642ms
Test suite progress: tests succeeded: 70, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2800ms
Test suite progress: tests succeeded: 71, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2200ms
Test suite progress: tests succeeded: 72, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2736ms
Test suite progress: tests succeeded: 73, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 4212ms
Test suite progress: tests succeeded: 74, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1913ms
Test suite progress: tests succeeded: 75, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2282ms
Test suite progress: tests succeeded: 76, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1988ms
Test suite progress: tests succeeded: 77, failed: 7, skipped: 0.
Starting test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1856ms
Test suite progress: tests succeeded: 78, failed: 7, skipped: 0.
Starting test deleteObjectNoContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObjectNoContainer(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 118ms
Test suite progress: tests succeeded: 79, failed: 7, skipped: 0.
Starting test deleteObjectNotFound(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObjectNotFound(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1621ms
Test suite progress: tests succeeded: 80, failed: 7, skipped: 0.
Starting test testBigFileGets(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testBigFileGets(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 23264ms
Test suite progress: tests succeeded: 81, failed: 7, skipped: 0.
Starting test testGetIfMatch(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfMatch(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 81, failed: 8, skipped: 0.
Starting test testGetIfModifiedSince(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfModifiedSince(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2769ms
Test suite progress: tests succeeded: 82, failed: 8, skipped: 0.
Starting test testGetIfNoneMatch(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfNoneMatch(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2785ms
Test suite progress: tests succeeded: 83, failed: 8, skipped: 0.
Starting test testGetIfUnmodifiedSince(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfUnmodifiedSince(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2340ms
Test suite progress: tests succeeded: 84, failed: 8, skipped: 0.
Starting test testMetadata(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testMetadata(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2719ms
Test suite progress: tests succeeded: 85, failed: 8, skipped: 0.
Starting test testPutFileParallel(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutFileParallel(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 28735ms
Test suite progress: tests succeeded: 86, failed: 8, skipped: 0.
Starting test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1889ms
Test suite progress: tests succeeded: 87, failed: 8, skipped: 0.
Starting test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2516ms
Test suite progress: tests succeeded: 88, failed: 8, skipped: 0.
Starting test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 2076ms
Test suite progress: tests succeeded: 89, failed: 8, skipped: 0.
Starting test testPutObjectStream(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObjectStream(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 1898ms
Test suite progress: tests succeeded: 90, failed: 8, skipped: 0.
Starting test testGetRange(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetRange(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 91, failed: 8, skipped: 0.
Starting test testGetTwoRanges(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetTwoRanges(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 92, failed: 8, skipped: 0.
Tests run: 100, Failures: 8, Errors: 0, Skipped: 0, Time elapsed: 449.152 sec <<< FAILURE!

Results :

Failed tests: 
  testSignGetUrlOptions(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobSignerLiveTest)
  testCopyCannedAccessPolicyPublic(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
  testPublicReadOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
  testPublicWriteOnObject(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
  testUpdateObjectACL(org.jclouds.epc.EucalyptusPartnerCloudWalrusClientLiveTest)
  testListContainerMarker(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusContainerIntegrationLiveTest)
  testPutMoreThanSingleListing(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobMapIntegrationLiveTest)
  testGetIfMatch(org.jclouds.epc.blobstore.EucalyptusPartnerCloudWalrusBlobIntegrationLiveTest)

Tests run: 100, Failures: 8, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7:57.995s
[INFO] Finished at: Sat Oct 15 11:37:33 PDT 2011
[INFO] Final Memory: 19M/125M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (integration) on project eucalyptus-partnercloud-s3: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/adriancole/workspace/git/1.2.0/jclouds/providers/eucalyptus-partnercloud-s3/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
