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

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
Starting test test404OnContainerIsContainerNotFound(org.jclouds.azure.storage.handlers.ParseAzureBlobErrorFromXmlContentTest)
Starting test testMetadataStatic(org.jclouds.azureblob.options.CreateContainerOptionsTest)
Starting test testMetadata(org.jclouds.azureblob.options.CreateContainerOptionsTest)
Starting test testMetadataAlreadyPrefixed(org.jclouds.azureblob.options.CreateContainerOptionsTest)
Starting test test404WithoutContainerIsKeyNotFound(org.jclouds.azure.storage.handlers.ParseAzureBlobErrorFromXmlContentTest)
[pool-2-thread-3] Test testMetadataAlreadyPrefixed(org.jclouds.azureblob.options.CreateContainerOptionsTest) succeeded: 312ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
[pool-2-thread-5] Test testMetadata(org.jclouds.azureblob.options.CreateContainerOptionsTest) succeeded: 356ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testPublicAccessStatic(org.jclouds.azureblob.options.CreateContainerOptionsTest)
[pool-2-thread-4] Test testMetadataStatic(org.jclouds.azureblob.options.CreateContainerOptionsTest) succeeded: 376ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.Starting test testPublicAccess(org.jclouds.azureblob.options.CreateContainerOptionsTest)

Starting test testDelimiterStatic(org.jclouds.azureblob.options.ListBlobsOptionsTest)
[pool-2-thread-4] Test testDelimiterStatic(org.jclouds.azureblob.options.ListBlobsOptionsTest) succeeded: 13ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testDelimiter(org.jclouds.azureblob.options.ListBlobsOptionsTest)
[pool-2-thread-4] Test testDelimiter(org.jclouds.azureblob.options.ListBlobsOptionsTest) succeeded: 0ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testContextImpl(org.jclouds.azureblob.blobstore.config.AzureBlobStoreModuleTest)
[pool-2-thread-3] Test testPublicAccessStatic(org.jclouds.azureblob.options.CreateContainerOptionsTest) succeeded: 18ms
Test suite progress: tests succeeded: 6, failed: 0, skipped: 0.
Starting test testInvalidNames(org.jclouds.azureblob.predicates.validators.ContainerNameValidatorTest)
[pool-2-thread-5] Test testPublicAccess(org.jclouds.azureblob.options.CreateContainerOptionsTest) succeeded: 41ms
Test suite progress: tests succeeded: 7, failed: 0, skipped: 0.
Starting test testNamesValidity(org.jclouds.azureblob.predicates.validators.ContainerNameValidatorTest)
[pool-2-thread-3] Test testInvalidNames(org.jclouds.azureblob.predicates.validators.ContainerNameValidatorTest) succeeded: 26ms
Test suite progress: tests succeeded: 8, failed: 0, skipped: 0.
[pool-2-thread-5] Test testNamesValidity(org.jclouds.azureblob.predicates.validators.ContainerNameValidatorTest) succeeded: 65ms
Test suite progress: tests succeeded: 9, failed: 0, skipped: 0.
[pool-2-thread-1] Test test404OnContainerIsContainerNotFound(org.jclouds.azure.storage.handlers.ParseAzureBlobErrorFromXmlContentTest) succeeded: 2602ms
Test suite progress: tests succeeded: 10, failed: 0, skipped: 0.
[pool-2-thread-2] Test test404WithoutContainerIsKeyNotFound(org.jclouds.azure.storage.handlers.ParseAzureBlobErrorFromXmlContentTest) succeeded: 2529ms
Test suite progress: tests succeeded: 11, failed: 0, skipped: 0.
[pool-2-thread-4] Test testContextImpl(org.jclouds.azureblob.blobstore.config.AzureBlobStoreModuleTest) succeeded: 3520ms
Test suite progress: tests succeeded: 12, failed: 0, skipped: 0.
Starting test testSetBlobMetadata(org.jclouds.azureblob.AzureBlobAsyncClientTest)
Starting test testListContainersOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest)
Starting test testCreateRootContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest)
Starting test testContainerProperties(org.jclouds.azureblob.AzureBlobAsyncClientTest)
Starting test testCreateRootContainerOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-5] Test testCreateRootContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 116ms
Test suite progress: tests succeeded: 13, failed: 0, skipped: 0.
Starting test testListRootBlobs(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-4] Test testContainerProperties(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 140ms
Test suite progress: tests succeeded: 14, failed: 0, skipped: 0.
Starting test testGetPublicAccessForContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testCreateRootContainerOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 148ms
Test suite progress: tests succeeded: 15, failed: 0, skipped: 0.
Starting test testDeleteContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-1] Test testSetBlobMetadata(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 169ms
Test suite progress: tests succeeded: 16, failed: 0, skipped: 0.
Starting test testListBlobs(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-4] Test testGetPublicAccessForContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 30ms
Test suite progress: tests succeeded: 17, failed: 0, skipped: 0.
Starting test testListContainers(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testDeleteContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 33ms
Test suite progress: tests succeeded: 18, failed: 0, skipped: 0.
Starting test testCreateContainerOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testCreateContainerOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 4ms
Test suite progress: tests succeeded: 19, failed: 0, skipped: 0.
Starting test testSetResourceMetadata(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testSetResourceMetadata(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 17ms
Test suite progress: tests succeeded: 20, failed: 0, skipped: 0.
Starting test testGetBlob(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testGetBlob(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 27ms
Test suite progress: tests succeeded: 21, failed: 0, skipped: 0.
Starting test testCreateContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testCreateContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 4ms
Test suite progress: tests succeeded: 22, failed: 0, skipped: 0.
Starting test testDeleteRootContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest)
[pool-3-thread-2] Test testDeleteRootContainer(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 2ms
Test suite progress: tests succeeded: 23, failed: 0, skipped: 0.
[pool-3-thread-3] Test testListContainersOptions(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 255ms
Test suite progress: tests succeeded: 24, failed: 0, skipped: 0.
[pool-3-thread-1] Test testListBlobs(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 85ms
Test suite progress: tests succeeded: 25, failed: 0, skipped: 0.
[pool-3-thread-4] Test testListContainers(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 75ms
Test suite progress: tests succeeded: 26, failed: 0, skipped: 0.
[pool-3-thread-5] Test testListRootBlobs(org.jclouds.azureblob.AzureBlobAsyncClientTest) succeeded: 136ms
Test suite progress: tests succeeded: 27, failed: 0, skipped: 0.
Starting test testSignPutBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest)
Starting test testSignRemoveBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest)
Starting test testSignGetBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest)
[pool-4-thread-1] Test testSignGetBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest) succeeded: 2051ms
Test suite progress: tests succeeded: 28, failed: 0, skipped: 0.
[pool-4-thread-2] Test testSignRemoveBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest) succeeded: 2062ms
Test suite progress: tests succeeded: 29, failed: 0, skipped: 0.
[pool-4-thread-3] Test testSignPutBlob(org.jclouds.azureblob.blobstore.AzureBlobRequestSignerTest) succeeded: 2064ms
Test suite progress: tests succeeded: 30, failed: 0, skipped: 0.
Starting test testApplyInputStream(org.jclouds.azureblob.xml.AccountNameEnumerationResultsHandlerTest)
Starting test testApplyInputStreamWithOptions(org.jclouds.azureblob.xml.AccountNameEnumerationResultsHandlerTest)
[pool-5-thread-2] Test testApplyInputStreamWithOptions(org.jclouds.azureblob.xml.AccountNameEnumerationResultsHandlerTest) succeeded: 49ms
Test suite progress: tests succeeded: 31, failed: 0, skipped: 0.
[pool-5-thread-1] Test testApplyInputStream(org.jclouds.azureblob.xml.AccountNameEnumerationResultsHandlerTest) succeeded: 51ms
Test suite progress: tests succeeded: 32, failed: 0, skipped: 0.
Starting test testApplyInputStream(org.jclouds.azureblob.xml.ContainerNameEnumerationResultsHandlerTest)
Starting test testOptions(org.jclouds.azureblob.xml.ContainerNameEnumerationResultsHandlerTest)
[pool-6-thread-2] Test testOptions(org.jclouds.azureblob.xml.ContainerNameEnumerationResultsHandlerTest) succeeded: 22ms
Test suite progress: tests succeeded: 33, failed: 0, skipped: 0.
[pool-6-thread-1] Test testApplyInputStream(org.jclouds.azureblob.xml.ContainerNameEnumerationResultsHandlerTest) succeeded: 24ms
Test suite progress: tests succeeded: 34, failed: 0, skipped: 0.
Starting test testPassWithMinimumDetailsAndPayload64MB(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
Starting test testNoNameIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
Starting test testMustBeAzureBlob(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
Starting test testNullIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
Starting test testOver64MBIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
[pool-7-thread-3] Test testOver64MBIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 2ms
Test suite progress: tests succeeded: 35, failed: 0, skipped: 0.
[pool-7-thread-1] Test testPassWithMinimumDetailsAndPayload64MB(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 10ms
Test suite progress: tests succeeded: 36, failed: 0, skipped: 0.
Starting test testNoContentLengthIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
Starting test testExtendedPropertiesBind(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest)
[pool-7-thread-5] Test testNoNameIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 15ms
Test suite progress: tests succeeded: 37, failed: 0, skipped: 0.
[pool-7-thread-2] Test testMustBeAzureBlob(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 13ms
Test suite progress: tests succeeded: 38, failed: 0, skipped: 0.
[pool-7-thread-3] Test testExtendedPropertiesBind(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 3ms
Test suite progress: tests succeeded: 39, failed: 0, skipped: 0.
[pool-7-thread-4] Test testNullIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 15ms
Test suite progress: tests succeeded: 40, failed: 0, skipped: 0.
[pool-7-thread-1] Test testNoContentLengthIsBad(org.jclouds.azureblob.binders.BindAzureBlobMetadataToRequestTest) succeeded: 9ms
Test suite progress: tests succeeded: 41, failed: 0, skipped: 0.
Starting test testInRestProperties(org.jclouds.azureblob.AzureBlobProviderTest)
Starting test testOfTypeContains(org.jclouds.azureblob.AzureBlobProviderTest)
Starting test testAllContains(org.jclouds.azureblob.AzureBlobProviderTest)
[pool-8-thread-1] Test testInRestProperties(org.jclouds.azureblob.AzureBlobProviderTest) succeeded: 108ms
Starting test testWithId(org.jclouds.azureblob.AzureBlobProviderTest)
Test suite progress: tests succeeded: 42, failed: 0, skipped: 0.
[pool-8-thread-3] Test testAllContains(org.jclouds.azureblob.AzureBlobProviderTest) succeeded: 40ms
Test suite progress: tests succeeded: 43, failed: 0, skipped: 0.
[pool-8-thread-2] Test testWithId(org.jclouds.azureblob.AzureBlobProviderTest) succeeded: 42ms
Test suite progress: tests succeeded: 44, failed: 0, skipped: 0.
[pool-8-thread-4] Test testOfTypeContains(org.jclouds.azureblob.AzureBlobProviderTest) succeeded: 146ms
Test suite progress: tests succeeded: 45, failed: 0, skipped: 0.
Tests run: 45, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.241 sec

Results :

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

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

Testing user

Ran 0 tests containing 0 assertions.
0 failures, 0 errors.
[INFO] 
[INFO] --- maven-bundle-plugin:2.3.4:bundle (default-bundle) @ azureblob ---
[INFO] 
[INFO] --- maven-source-plugin:2.1.1:jar-no-fork (attach-sources) @ azureblob ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/azureblob/target/azureblob-1.2.0-SNAPSHOT-sources.jar
[INFO] 
[INFO] --- maven-javadoc-plugin:2.8:jar (javadoc) @ azureblob ---
[INFO] Skipping javadoc generation
[INFO] 
[INFO] --- maven-jar-plugin:2.3.1:test-jar (default) @ azureblob ---
[INFO] Building jar: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/azureblob/target/azureblob-1.2.0-SNAPSHOT-tests.jar
[INFO] 
[INFO] --- maven-surefire-plugin:2.5:test (integration) @ azureblob ---
[INFO] Surefire report directory: /Users/adriancole/workspace/git/1.2.0/jclouds/providers/azureblob/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestSuite
org.jclouds.azure.storage.AzureStorageResponseException: command [method=AzureBlobAsyncClient.createContainer, request=PUT https://jclouds.blob.core.windows.net/adriancole-blobstore1?restype=container HTTP/1.1] failed with code 409, error: AzureError{requestId='a91c9ce9-7382-4c45-981f-f0019962fe27', code='ContainerBeingDeleted', message='The specified container is being deleted. Try operation later.
RequestId:a91c9ce9-7382-4c45-981f-f0019962fe27
Time:2011-10-15T17:07:10.7381361Z'
	at org.jclouds.azure.storage.handlers.ParseAzureStorageErrorFromXmlContent.handleError(ParseAzureStorageErrorFromXmlContent.java:75)
	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 $Proxy60.createContainer(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	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 $Proxy61.createContainer(Unknown Source)
	at org.jclouds.azureblob.blobstore.AzureBlobStore.createContainerInLocation(AzureBlobStore.java:130)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty(BaseBlobStoreIntegrationTest.java:235)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainersSharedByAllThreads(BaseBlobStoreIntegrationTest.java:142)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.setUpResourcesForAllThreads(BaseBlobStoreIntegrationTest.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:260)
	at org.testng.SuiteRunner.run(SuiteRunner.java:223)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
	at org.testng.TestNG.run(TestNG.java:900)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
	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 $Proxy60.createContainer(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	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 $Proxy61.createContainer(Unknown Source)
	at org.jclouds.azureblob.blobstore.AzureBlobStore.createContainerInLocation(AzureBlobStore.java:130)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty(BaseBlobStoreIntegrationTest.java:235)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainersSharedByAllThreads(BaseBlobStoreIntegrationTest.java:142)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.setUpResourcesForAllThreads(BaseBlobStoreIntegrationTest.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:260)
	at org.testng.SuiteRunner.run(SuiteRunner.java:223)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
	at org.testng.TestNG.run(TestNG.java:900)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
org.jclouds.azure.storage.AzureStorageResponseException: command [method=AzureBlobAsyncClient.createContainer, request=PUT https://jclouds.blob.core.windows.net/adriancole-blobstore4?restype=container HTTP/1.1] failed with code 409, error: AzureError{requestId='189aadfe-66c2-4802-942c-190353c1db58', code='ContainerBeingDeleted', message='The specified container is being deleted. Try operation later.
RequestId:189aadfe-66c2-4802-942c-190353c1db58
Time:2011-10-15T17:07:20.7265846Z'
	at org.jclouds.azure.storage.handlers.ParseAzureStorageErrorFromXmlContent.handleError(ParseAzureStorageErrorFromXmlContent.java:75)
	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 $Proxy60.createContainer(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	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 $Proxy61.createContainer(Unknown Source)
	at org.jclouds.azureblob.blobstore.AzureBlobStore.createContainerInLocation(AzureBlobStore.java:130)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty(BaseBlobStoreIntegrationTest.java:235)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainersSharedByAllThreads(BaseBlobStoreIntegrationTest.java:142)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.setUpResourcesForAllThreads(BaseBlobStoreIntegrationTest.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:260)
	at org.testng.SuiteRunner.run(SuiteRunner.java:223)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
	at org.testng.TestNG.run(TestNG.java:900)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
	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 $Proxy60.createContainer(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	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 $Proxy61.createContainer(Unknown Source)
	at org.jclouds.azureblob.blobstore.AzureBlobStore.createContainerInLocation(AzureBlobStore.java:130)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty(BaseBlobStoreIntegrationTest.java:235)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainersSharedByAllThreads(BaseBlobStoreIntegrationTest.java:142)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.setUpResourcesForAllThreads(BaseBlobStoreIntegrationTest.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:260)
	at org.testng.SuiteRunner.run(SuiteRunner.java:223)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
	at org.testng.TestNG.run(TestNG.java:900)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
org.jclouds.azure.storage.AzureStorageResponseException: command [method=AzureBlobAsyncClient.createContainer, request=PUT https://jclouds.blob.core.windows.net/adriancole-blobstore5?restype=container HTTP/1.1] failed with code 409, error: AzureError{requestId='3f69a2ff-ed78-4016-8376-ff5351d38089', code='ContainerBeingDeleted', message='The specified container is being deleted. Try operation later.
RequestId:3f69a2ff-ed78-4016-8376-ff5351d38089
Time:2011-10-15T17:07:28.6889872Z'
	at org.jclouds.azure.storage.handlers.ParseAzureStorageErrorFromXmlContent.handleError(ParseAzureStorageErrorFromXmlContent.java:75)
	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 $Proxy60.createContainer(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	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 $Proxy61.createContainer(Unknown Source)
	at org.jclouds.azureblob.blobstore.AzureBlobStore.createContainerInLocation(AzureBlobStore.java:130)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainerAndEnsureEmpty(BaseBlobStoreIntegrationTest.java:235)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.createContainersSharedByAllThreads(BaseBlobStoreIntegrationTest.java:142)
	at org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest.setUpResourcesForAllThreads(BaseBlobStoreIntegrationTest.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:260)
	at org.testng.SuiteRunner.run(SuiteRunner.java:223)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
	at org.testng.TestNG.run(TestNG.java:900)
	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
	at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
	at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
*** containers to test: [adriancole-blobstore0, adriancole-blobstore2, adriancole-blobstore3, adriancole-blobstore6, adriancole-blobstore7, adriancole-blobstore8, adriancole-blobstore9, adriancole-blobstore10, adriancole-blobstore11, adriancole-blobstore12]
Starting test testCreateContainer(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testCreateContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 1427ms
Test suite progress: tests succeeded: 1, failed: 0, skipped: 0.
Starting test testCreatePublicContainer(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testCreatePublicContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 375ms
Test suite progress: tests succeeded: 2, failed: 0, skipped: 0.
Starting test testCreatePublicRootContainer(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testCreatePublicRootContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 1095ms
Test suite progress: tests succeeded: 3, failed: 0, skipped: 0.
Starting test testDeleteRootContainer(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testDeleteRootContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 367ms
Test suite progress: tests succeeded: 4, failed: 0, skipped: 0.
Starting test testListOwnedContainers(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testListOwnedContainers(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 1241ms
Test suite progress: tests succeeded: 5, failed: 0, skipped: 0.
Starting test testObjectOperations(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testObjectOperations(org.jclouds.azureblob.AzureBlobClientLiveTest) failed.
Test suite progress: tests succeeded: 5, failed: 1, skipped: 0.
[pool-4-thread-1] Test testDeleteContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) skipped.
Test suite progress: tests succeeded: 5, failed: 1, skipped: 1.
Starting test testListContainers(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testListContainers(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 581ms
Test suite progress: tests succeeded: 6, failed: 1, skipped: 1.
Starting test testListContainersWithOptions(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testListContainersWithOptions(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 379ms
Test suite progress: tests succeeded: 7, failed: 1, skipped: 1.
Starting test testDeleteOneContainer(org.jclouds.azureblob.AzureBlobClientLiveTest)
[pool-4-thread-1] Test testDeleteOneContainer(org.jclouds.azureblob.AzureBlobClientLiveTest) succeeded: 359ms
Test suite progress: tests succeeded: 8, failed: 1, skipped: 1.
Starting test testContains(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testContains(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 2840ms
Test suite progress: tests succeeded: 9, failed: 1, skipped: 1.
Starting test testEntrySet(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testEntrySet(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 10565ms
Test suite progress: tests succeeded: 10, failed: 1, skipped: 1.
Starting test testPut(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPut(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 4330ms
Test suite progress: tests succeeded: 11, failed: 1, skipped: 1.
Starting test testPutAll(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAll(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 3969ms
Test suite progress: tests succeeded: 12, failed: 1, skipped: 1.
Starting test testPutMoreThanSingleListing(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutMoreThanSingleListing(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 9502ms
Test suite progress: tests succeeded: 13, failed: 1, skipped: 1.
Starting test testRemove(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testRemove(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 4175ms
Test suite progress: tests succeeded: 14, failed: 1, skipped: 1.
Starting test testValues(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testValues(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 3423ms
Test suite progress: tests succeeded: 15, failed: 1, skipped: 1.
Starting test testClear(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testClear(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 4088ms
Test suite progress: tests succeeded: 16, failed: 1, skipped: 1.
Starting test testContainsKey(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsKey(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 2436ms
Test suite progress: tests succeeded: 17, failed: 1, skipped: 1.
Starting test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 43246ms
Test suite progress: tests succeeded: 18, failed: 1, skipped: 1.
Starting test testIsEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testIsEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 3100ms
Test suite progress: tests succeeded: 19, failed: 1, skipped: 1.
Starting test testKeySet(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testKeySet(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 3621ms
Test suite progress: tests succeeded: 20, failed: 1, skipped: 1.
Starting test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobMapIntegrationLiveTest) succeeded: 2073ms
Test suite progress: tests succeeded: 21, failed: 1, skipped: 1.
Starting test testPublicAccess(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerLiveTest)
*** allocated new container adriancole-blobstore6...
*** allocated new container adriancole-blobstore614...
[pool-4-thread-1] Test testPublicAccess(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerLiveTest) succeeded: 5288ms
Test suite progress: tests succeeded: 22, failed: 1, skipped: 1.
Starting test testContainsBytesValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsBytesValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 2833ms
Test suite progress: tests succeeded: 23, failed: 1, skipped: 1.
Starting test testContainsFileValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsFileValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 2891ms
Test suite progress: tests succeeded: 24, failed: 1, skipped: 1.
Starting test testContainsInputStreamValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsInputStreamValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 3333ms
Test suite progress: tests succeeded: 25, failed: 1, skipped: 1.
Starting test testContainsStringValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsStringValue(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 2744ms
Test suite progress: tests succeeded: 26, failed: 1, skipped: 1.
Starting test testEntrySet(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testEntrySet(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 12588ms
Test suite progress: tests succeeded: 27, failed: 1, skipped: 1.
Starting test testPut(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPut(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 9256ms
Test suite progress: tests succeeded: 28, failed: 1, skipped: 1.
Starting test testPutAll(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAll(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4465ms
Test suite progress: tests succeeded: 29, failed: 1, skipped: 1.
Starting test testPutAllBytes(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllBytes(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 5108ms
Test suite progress: tests succeeded: 30, failed: 1, skipped: 1.
Starting test testPutAllFiles(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllFiles(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4313ms
Test suite progress: tests succeeded: 31, failed: 1, skipped: 1.
Starting test testPutAllStrings(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutAllStrings(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 5303ms
Test suite progress: tests succeeded: 32, failed: 1, skipped: 1.
Starting test testPutBytes(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutBytes(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4841ms
Test suite progress: tests succeeded: 33, failed: 1, skipped: 1.
Starting test testPutFile(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutFile(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4764ms
Test suite progress: tests succeeded: 34, failed: 1, skipped: 1.
Starting test testPutMoreThanSingleListing(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutMoreThanSingleListing(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 9502ms
Test suite progress: tests succeeded: 35, failed: 1, skipped: 1.
Starting test testPutString(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testPutString(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4901ms
Test suite progress: tests succeeded: 36, failed: 1, skipped: 1.
Starting test testRemove(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testRemove(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4826ms
Test suite progress: tests succeeded: 37, failed: 1, skipped: 1.
Starting test testValues(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testValues(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 3273ms
Test suite progress: tests succeeded: 38, failed: 1, skipped: 1.
Starting test testClear(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testClear(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 4456ms
Test suite progress: tests succeeded: 39, failed: 1, skipped: 1.
Starting test testContainsKey(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testContainsKey(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 3039ms
Test suite progress: tests succeeded: 40, failed: 1, skipped: 1.
Starting test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 27860ms
Test suite progress: tests succeeded: 41, failed: 1, skipped: 1.
Starting test testIsEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testIsEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 3217ms
Test suite progress: tests succeeded: 42, failed: 1, skipped: 1.
Starting test testKeySet(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testKeySet(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 3393ms
Test suite progress: tests succeeded: 43, failed: 1, skipped: 1.
Starting test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobInputStreamMapIntegrationLiveTest) succeeded: 1321ms
Test suite progress: tests succeeded: 44, failed: 1, skipped: 1.
Starting test containerDoesntExist(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test containerDoesntExist(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 664ms
Test suite progress: tests succeeded: 45, failed: 1, skipped: 1.
Starting test containerExists(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test containerExists(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 2069ms
Test suite progress: tests succeeded: 46, failed: 1, skipped: 1.
Starting test testWithDetails(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testWithDetails(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 2740ms
Test suite progress: tests succeeded: 47, failed: 1, skipped: 1.
Starting test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 8010ms
Test suite progress: tests succeeded: 48, failed: 1, skipped: 1.
Starting test testListContainerMarker(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerMarker(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 11962ms
Test suite progress: tests succeeded: 49, failed: 1, skipped: 1.
Starting test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testPutTwiceIsOkAndDoesntOverwrite(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 17405ms
Test suite progress: tests succeeded: 50, failed: 1, skipped: 1.
Starting test deleteContainerIfEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore7...
[pool-4-thread-1] Test deleteContainerIfEmpty(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 13665ms
Test suite progress: tests succeeded: 51, failed: 1, skipped: 1.
Starting test testListContainerMaxResults(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerMaxResults(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 12059ms
Test suite progress: tests succeeded: 52, failed: 1, skipped: 1.
Starting test deleteContainerWithContents(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
*** allocated new container adriancole-blobstore9...
[pool-4-thread-1] Test deleteContainerWithContents(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 3820ms
Test suite progress: tests succeeded: 53, failed: 1, skipped: 1.
Starting test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testDirectory(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 17747ms
Test suite progress: tests succeeded: 54, failed: 1, skipped: 1.
Starting test testListRootUsesDelimiter(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListRootUsesDelimiter(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 10898ms
Test suite progress: tests succeeded: 55, failed: 1, skipped: 1.
Starting test testClearWhenContentsUnderPath(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testClearWhenContentsUnderPath(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 6743ms
Test suite progress: tests succeeded: 56, failed: 1, skipped: 1.
Starting test testListContainerPrefix(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest)
[pool-4-thread-1] Test testListContainerPrefix(org.jclouds.azureblob.blobstore.integration.AzureBlobContainerIntegrationLiveTest) succeeded: 11018ms
Test suite progress: tests succeeded: 57, failed: 1, skipped: 1.
Starting test testSignRemoveUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest)
[pool-4-thread-1] Test testSignRemoveUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest) succeeded: 3744ms
Test suite progress: tests succeeded: 58, failed: 1, skipped: 1.
Starting test testSignGetUrlOptions(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest)
[pool-4-thread-1] Test testSignGetUrlOptions(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest) succeeded: 2912ms
Test suite progress: tests succeeded: 59, failed: 1, skipped: 1.
Starting test testSignPutUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest)
[pool-4-thread-1] Test testSignPutUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest) succeeded: 3043ms
Test suite progress: tests succeeded: 60, failed: 1, skipped: 1.
Starting test testSignGetUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest)
[pool-4-thread-1] Test testSignGetUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobSignerLiveTest) succeeded: 2487ms
Test suite progress: tests succeeded: 61, failed: 1, skipped: 1.
Starting test testGetIfModifiedSince(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfModifiedSince(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 5620ms
Test suite progress: tests succeeded: 62, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2130ms
Test suite progress: tests succeeded: 63, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3144ms
Test suite progress: tests succeeded: 64, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2110ms
Test suite progress: tests succeeded: 65, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2766ms
Test suite progress: tests succeeded: 66, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2666ms
Test suite progress: tests succeeded: 67, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2876ms
Test suite progress: tests succeeded: 68, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2415ms
Test suite progress: tests succeeded: 69, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2038ms
Test suite progress: tests succeeded: 70, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2077ms
Test suite progress: tests succeeded: 71, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2371ms
Test suite progress: tests succeeded: 72, failed: 1, skipped: 1.
Starting test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2009ms
Test suite progress: tests succeeded: 73, failed: 1, skipped: 1.
Starting test testGetIfMatch(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfMatch(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 0ms
Test suite progress: tests succeeded: 74, failed: 1, skipped: 1.
Starting test testMetadata(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testMetadata(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3352ms
Test suite progress: tests succeeded: 75, failed: 1, skipped: 1.
Starting test testPutFileParallel(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutFileParallel(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 31164ms
Test suite progress: tests succeeded: 76, failed: 1, skipped: 1.
Starting test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) failed.
Test suite progress: tests succeeded: 76, failed: 2, skipped: 1.
Starting test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 5273ms
Test suite progress: tests succeeded: 77, failed: 2, skipped: 1.
Starting test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2820ms
Test suite progress: tests succeeded: 78, failed: 2, skipped: 1.
Starting test testGetIfUnmodifiedSince(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfUnmodifiedSince(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3893ms
Test suite progress: tests succeeded: 79, failed: 2, skipped: 1.
Starting test testPutObjectStream(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testPutObjectStream(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 1035ms
Test suite progress: tests succeeded: 80, failed: 2, skipped: 1.
Starting test deleteObjectNotFound(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObjectNotFound(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 2970ms
Test suite progress: tests succeeded: 81, failed: 2, skipped: 1.
Starting test testGetRange(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetRange(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3247ms
Test suite progress: tests succeeded: 82, failed: 2, skipped: 1.
Starting test deleteObjectNoContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test deleteObjectNoContainer(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 329ms
Test suite progress: tests succeeded: 83, failed: 2, skipped: 1.
Starting test testGetTwoRanges(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetTwoRanges(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3220ms
Test suite progress: tests succeeded: 84, failed: 2, skipped: 1.
Starting test testGetIfNoneMatch(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testGetIfNoneMatch(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 3842ms
Test suite progress: tests succeeded: 85, failed: 2, skipped: 1.
Starting test blobNotFound(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test blobNotFound(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 1719ms
Test suite progress: tests succeeded: 86, failed: 2, skipped: 1.
Starting test testBigFileGets(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)
[pool-4-thread-1] Test testBigFileGets(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest) succeeded: 45188ms
Test suite progress: tests succeeded: 87, failed: 2, skipped: 1.
Exception in thread "user thread 0" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 9" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 4" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 6" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 26" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 12" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 8" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 10" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 14" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Exception in thread "user thread 19" java.lang.IllegalStateException: interrupted calling get() on [[method=AzureBlobAsyncClient.getBlob, request=GET https://jclouds.blob.core.windows.net/adriancole-blobstore2/constitution.txt HTTP/1.1]], so could not run listeners
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:66)
	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)
Caused by: java.lang.InterruptedException
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:979)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1281)
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:218)
	at java.util.concurrent.FutureTask.get(FutureTask.java:83)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:237)
	at org.jclouds.concurrent.Futures$CallGetAndRunExecutionList.run(Futures.java:59)
	... 3 more
Caused by: java.util.concurrent.ExecutionException: task submitted from the following trace
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.ensureCauseHasSubmissionTrace(ExecutorServiceModule.java:270)
	at org.jclouds.concurrent.config.ExecutorServiceModule$DescribedFuture.get(ExecutorServiceModule.java:241)
	... 4 more
Starting test testAllLocations(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest)
*** allocated new container adriancole-blobstore3...
 >> creating container in location [id=azureblob, scope=PROVIDER, description=https://jclouds.blob.core.windows.net, parent=null, iso3166Codes=[US-TX, US-IL, IE-D, SG, NL-NH, HK], metadata={}]
 << call complete.. checking
*** allocated new container adriancole-blobstore318...
[pool-4-thread-1] Test testAllLocations(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest) succeeded: 3039ms
Test suite progress: tests succeeded: 88, failed: 2, skipped: 1.
Starting test containerDoesntExist(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest)
[pool-4-thread-1] Test containerDoesntExist(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest) succeeded: 521ms
Test suite progress: tests succeeded: 89, failed: 2, skipped: 1.
Starting test testGetAssignableLocations(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest)
location [id=azureblob, scope=PROVIDER, description=https://jclouds.blob.core.windows.net, parent=null, iso3166Codes=[US-TX, US-IL, IE-D, SG, NL-NH, HK], metadata={}]
[pool-4-thread-1] Test testGetAssignableLocations(org.jclouds.azureblob.blobstore.integration.AzureBlobServiceIntegrationLiveTest) succeeded: 1ms
Test suite progress: tests succeeded: 90, failed: 2, skipped: 1.
Starting test testCopyUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobLiveTest)
[pool-4-thread-1] Test testCopyUrl(org.jclouds.azureblob.blobstore.integration.AzureBlobLiveTest) succeeded: 9741ms
Test suite progress: tests succeeded: 91, failed: 2, skipped: 1.
Tests run: 94, Failures: 2, Errors: 0, Skipped: 1, Time elapsed: 577.447 sec <<< FAILURE!

Results :

Failed tests: 
  testObjectOperations(org.jclouds.azureblob.AzureBlobClientLiveTest)
  testPutObject(org.jclouds.azureblob.blobstore.integration.AzureBlobIntegrationLiveTest)

Tests run: 94, Failures: 2, Errors: 0, Skipped: 1

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10:21.220s
[INFO] Finished at: Sat Oct 15 10:16:32 PDT 2011
[INFO] Final Memory: 20M/125M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (integration) on project azureblob: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/adriancole/workspace/git/1.2.0/jclouds/providers/azureblob/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
