mirror of https://github.com/apache/jclouds.git
Issue 144: replaced exception handling with guava's Throwables methods
git-svn-id: http://jclouds.googlecode.com/svn/trunk@2624 3d8758e0-26b5-11de-8745-db77d3ebf521
This commit is contained in:
parent
480fc9b31a
commit
e69831b1a9
|
@ -31,7 +31,8 @@ import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.options.ListContainerOptions;
|
import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Searches Content-MD5 tag for the value associated with the value
|
* Searches Content-MD5 tag for the value associated with the value
|
||||||
|
@ -64,7 +65,7 @@ public class FindMD5InUserMetadata implements ContainsValueInListStrategy {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format(
|
throw new BlobRuntimeException(String.format(
|
||||||
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
||||||
value), e);
|
value), e);
|
||||||
|
|
|
@ -42,6 +42,7 @@ import org.jclouds.util.Utils;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.common.util.concurrent.Futures;
|
import com.google.common.util.concurrent.Futures;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
@ -125,7 +126,7 @@ public class RecursiveRemove implements ClearListStrategy, ClearContainerStrateg
|
||||||
isdeleted.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
isdeleted.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error deleting path: " + path, e);
|
throw new BlobRuntimeException("Error deleting path: " + path, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@ import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This will parse and set an appropriate exception on the command object.
|
* This will parse and set an appropriate exception on the command object.
|
||||||
*
|
*
|
||||||
|
@ -76,14 +78,14 @@ public class ParseAtmosStorageErrorFromXmlContent implements HttpErrorHandler {
|
||||||
}
|
}
|
||||||
} catch (Exception he) {
|
} catch (Exception he) {
|
||||||
command.setException(new HttpResponseException(command, response, content));
|
command.setException(new HttpResponseException(command, response, content));
|
||||||
Utils.rethrowIfRuntime(he);
|
Throwables.propagateIfPossible(he);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
Utils.rethrowIfRuntime(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,8 @@ import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This will parse and set an appropriate exception on the command object.
|
* This will parse and set an appropriate exception on the command object.
|
||||||
*
|
*
|
||||||
|
@ -64,15 +66,14 @@ public class ParseAWSErrorFromXmlContent implements HttpErrorHandler {
|
||||||
}
|
}
|
||||||
} catch (Exception he) {
|
} catch (Exception he) {
|
||||||
command.setException(new HttpResponseException(command, response, content));
|
command.setException(new HttpResponseException(command, response, content));
|
||||||
Utils.rethrowIfRuntime(he);
|
Throwables.propagateIfPossible(he);
|
||||||
}
|
}
|
||||||
} else if (response.getStatusCode() == 404){
|
} else if (response.getStatusCode() == 404) {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
Utils.rethrowIfRuntime(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -33,8 +33,8 @@ import org.jclouds.aws.s3.domain.AccessControlList.GroupGrantee;
|
||||||
import org.jclouds.aws.s3.reference.S3Constants;
|
import org.jclouds.aws.s3.reference.S3Constants;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.rest.Binder;
|
import org.jclouds.rest.Binder;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.jamesmurty.utils.XMLBuilder;
|
import com.jamesmurty.utils.XMLBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,7 +53,7 @@ public class BindACLToXMLPayload implements Binder {
|
||||||
request.getHeaders().put(HttpHeaders.CONTENT_LENGTH, stringPayload.getBytes().length + "");
|
request.getHeaders().put(HttpHeaders.CONTENT_LENGTH, stringPayload.getBytes().length + "");
|
||||||
request.setPayload(stringPayload);
|
request.setPayload(stringPayload);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.rethrowIfRuntime(e);
|
Throwables.propagateIfPossible(e);
|
||||||
throw new RuntimeException("error transforming acl: " + from, e);
|
throw new RuntimeException("error transforming acl: " + from, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,8 +33,8 @@ import org.jclouds.aws.s3.domain.AccessControlList.GroupGrantee;
|
||||||
import org.jclouds.aws.s3.reference.S3Constants;
|
import org.jclouds.aws.s3.reference.S3Constants;
|
||||||
import org.jclouds.http.HttpRequest;
|
import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.rest.Binder;
|
import org.jclouds.rest.Binder;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.jamesmurty.utils.XMLBuilder;
|
import com.jamesmurty.utils.XMLBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -53,7 +53,7 @@ public class BindBucketLoggingToXmlPayload implements Binder {
|
||||||
request.getHeaders().put(HttpHeaders.CONTENT_LENGTH, stringPayload.getBytes().length + "");
|
request.getHeaders().put(HttpHeaders.CONTENT_LENGTH, stringPayload.getBytes().length + "");
|
||||||
request.setPayload(stringPayload);
|
request.setPayload(stringPayload);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.rethrowIfRuntime(e);
|
Throwables.propagateIfPossible(e);
|
||||||
throw new RuntimeException("error transforming bucketLogging: " + from, e);
|
throw new RuntimeException("error transforming bucketLogging: " + from, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ import com.google.inject.Injector;
|
||||||
*
|
*
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
||||||
@Test(groups = "live", enabled = true, sequential = true, testName = "ec2.EC2ComputeServiceLiveTest")
|
@Test(groups = "live", enabled = false, sequential = true, testName = "ec2.EC2ComputeServiceLiveTest")
|
||||||
public class EC2ComputeServiceLiveTest {
|
public class EC2ComputeServiceLiveTest {
|
||||||
|
|
||||||
private EC2ComputeService client;
|
private EC2ComputeService client;
|
||||||
|
@ -80,7 +80,7 @@ public class EC2ComputeServiceLiveTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testCreate() throws Exception {
|
public void testCreate() throws Exception {
|
||||||
server = client.createServer(serverPrefix, Profile.SMALLEST, Image.CENTOS_53);
|
server = client.createServer(serverPrefix, Profile.SMALLEST, Image.RHEL_53);
|
||||||
assertNotNull(server.getId());
|
assertNotNull(server.getId());
|
||||||
assertEquals(server.getLoginPort(), 22);
|
assertEquals(server.getLoginPort(), 22);
|
||||||
assertEquals(server.getLoginType(), LoginType.SSH);
|
assertEquals(server.getLoginType(), LoginType.SSH);
|
||||||
|
|
|
@ -52,6 +52,7 @@ import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -153,7 +154,7 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient
|
||||||
assertFalse(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.WRITE_ACP));
|
assertFalse(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.WRITE_ACP));
|
||||||
assertFalse(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.FULL_CONTROL));
|
assertFalse(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.FULL_CONTROL));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -252,7 +253,7 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient
|
||||||
assertTrue(acl.hasPermission(ownerId, Permission.FULL_CONTROL));
|
assertTrue(acl.hasPermission(ownerId, Permission.FULL_CONTROL));
|
||||||
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ));
|
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -25,7 +25,8 @@ import static org.jclouds.aws.s3.options.ListBucketOptions.Builder.withPrefix;
|
||||||
import static org.jclouds.aws.s3.options.PutBucketOptions.Builder.createIn;
|
import static org.jclouds.aws.s3.options.PutBucketOptions.Builder.createIn;
|
||||||
import static org.jclouds.aws.s3.options.PutBucketOptions.Builder.withBucketAcl;
|
import static org.jclouds.aws.s3.options.PutBucketOptions.Builder.withBucketAcl;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
import static org.testng.Assert.*;
|
import static org.testng.Assert.assertNull;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
@ -55,6 +56,7 @@ import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -192,7 +194,7 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
assertEquals(Payer.REQUESTER, context.getApi().getBucketPayer(bucketName));
|
assertEquals(Payer.REQUESTER, context.getApi().getBucketPayer(bucketName));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -201,9 +203,8 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
assertEquals(Payer.BUCKET_OWNER, context.getApi().getBucketPayer(bucketName));
|
assertEquals(Payer.BUCKET_OWNER, context.getApi().getBucketPayer(bucketName));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -242,7 +243,7 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
assertEquals(logging.getTargetBucket(), newLogging.getTargetBucket());
|
assertEquals(logging.getTargetBucket(), newLogging.getTargetBucket());
|
||||||
assertEquals(logging.getTargetPrefix(), newLogging.getTargetPrefix());
|
assertEquals(logging.getTargetPrefix(), newLogging.getTargetPrefix());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -252,7 +253,7 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
try {
|
try {
|
||||||
assertNull(context.getApi().getBucketLogging(bucketName));
|
assertNull(context.getApi().getBucketLogging(bucketName));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -285,7 +286,7 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ), acl
|
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ), acl
|
||||||
.toString());
|
.toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -316,7 +317,7 @@ public class BucketsLiveTest extends BaseBlobStoreIntegrationTest<S3AsyncClient,
|
||||||
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ), acl
|
assertTrue(acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ), acl
|
||||||
.toString());
|
.toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -37,7 +37,6 @@ import org.jclouds.aws.s3.options.ListBucketOptions;
|
||||||
import org.jclouds.aws.s3.options.PutObjectOptions;
|
import org.jclouds.aws.s3.options.PutObjectOptions;
|
||||||
import org.jclouds.blobstore.BlobStoreContext;
|
import org.jclouds.blobstore.BlobStoreContext;
|
||||||
import org.jclouds.http.options.GetOptions;
|
import org.jclouds.http.options.GetOptions;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.jets3t.service.S3ObjectsChunk;
|
import org.jets3t.service.S3ObjectsChunk;
|
||||||
import org.jets3t.service.S3Service;
|
import org.jets3t.service.S3Service;
|
||||||
import org.jets3t.service.S3ServiceException;
|
import org.jets3t.service.S3ServiceException;
|
||||||
|
@ -47,6 +46,7 @@ import org.jets3t.service.model.S3BucketLoggingStatus;
|
||||||
import org.jets3t.service.model.S3Object;
|
import org.jets3t.service.model.S3Object;
|
||||||
import org.jets3t.service.security.AWSCredentials;
|
import org.jets3t.service.security.AWSCredentials;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -107,7 +107,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
map.put("ETag", jcObjectMetadata.getETag());
|
map.put("ETag", jcObjectMetadata.getETag());
|
||||||
return map;
|
return map;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error copying object", e);
|
throw new S3ServiceException("error copying object", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
// Bucket created.
|
// Bucket created.
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error creating bucket: " + bucketName, e);
|
throw new S3ServiceException("error creating bucket: " + bucketName, e);
|
||||||
}
|
}
|
||||||
return new S3Bucket(bucketName);
|
return new S3Bucket(bucketName);
|
||||||
|
@ -141,7 +141,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
try {
|
try {
|
||||||
connection.deleteBucketIfEmpty(bucketName);
|
connection.deleteBucketIfEmpty(bucketName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error deleting bucket: " + bucketName, e);
|
throw new S3ServiceException("error deleting bucket: " + bucketName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
try {
|
try {
|
||||||
connection.deleteObject(bucketName, objectKey);
|
connection.deleteObject(bucketName, objectKey);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException(String.format("error deleting object: %1$s:%2$s", bucketName,
|
throw new S3ServiceException(String.format("error deleting object: %1$s:%2$s", bucketName,
|
||||||
objectKey), e);
|
objectKey), e);
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
org.jclouds.aws.s3.domain.AccessControlList jcACL = connection.getBucketACL(bucketName);
|
org.jclouds.aws.s3.domain.AccessControlList jcACL = connection.getBucketACL(bucketName);
|
||||||
return Util.convertAccessControlList(jcACL);
|
return Util.convertAccessControlList(jcACL);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error getting bucket's ACL: " + bucketName, e);
|
throw new S3ServiceException("error getting bucket's ACL: " + bucketName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
objectKey);
|
objectKey);
|
||||||
return Util.convertAccessControlList(jcACL);
|
return Util.convertAccessControlList(jcACL);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error getting object's ACL", e);
|
throw new S3ServiceException("error getting object's ACL", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
|
|
||||||
return Util.convertObjectHead(connection.headObject(bucketName, objectKey));
|
return Util.convertObjectHead(connection.headObject(bucketName, objectKey));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException(String.format("error retrieving object head: %1$s:%2$s",
|
throw new S3ServiceException(String.format("error retrieving object head: %1$s:%2$s",
|
||||||
bucketName, objectKey), e);
|
bucketName, objectKey), e);
|
||||||
}
|
}
|
||||||
|
@ -230,7 +230,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
ifMatchTags, ifNoneMatchTags);
|
ifMatchTags, ifNoneMatchTags);
|
||||||
return Util.convertObject(connection.getObject(bucketName, objectKey, options));
|
return Util.convertObject(connection.getObject(bucketName, objectKey, options));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException(String.format("error retrieving object: %1$s:%2$s",
|
throw new S3ServiceException(String.format("error retrieving object: %1$s:%2$s",
|
||||||
bucketName, objectKey), e);
|
bucketName, objectKey), e);
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
.listOwnedBuckets();
|
.listOwnedBuckets();
|
||||||
return Util.convertBuckets(jcBucketList);
|
return Util.convertBuckets(jcBucketList);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error listing buckets", e);
|
throw new S3ServiceException("error listing buckets", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -289,7 +289,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
.size()]), (String[]) commonPrefixes.toArray(new String[commonPrefixes
|
.size()]), (String[]) commonPrefixes.toArray(new String[commonPrefixes
|
||||||
.size()]), priorLastKey);
|
.size()]), priorLastKey);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error listing objects in bucket " + bucketName, e);
|
throw new S3ServiceException("error listing objects in bucket " + bucketName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -301,7 +301,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
return listObjectsChunked(bucketName, prefix, delimiter, maxListingLength, null, true)
|
return listObjectsChunked(bucketName, prefix, delimiter, maxListingLength, null, true)
|
||||||
.getObjects();
|
.getObjects();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error listing objects in bucket " + bucketName, e);
|
throw new S3ServiceException("error listing objects in bucket " + bucketName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -313,7 +313,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL);
|
org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL);
|
||||||
connection.putBucketACL(bucketName, jcACL);
|
connection.putBucketACL(bucketName, jcACL);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error putting bucket's ACL: " + bucketName, e);
|
throw new S3ServiceException("error putting bucket's ACL: " + bucketName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL);
|
org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL);
|
||||||
connection.putObjectACL(bucketName, objectKey, jcACL);
|
connection.putObjectACL(bucketName, objectKey, jcACL);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error putting object's ACL", e);
|
throw new S3ServiceException("error putting object's ACL", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -340,7 +340,7 @@ public class JCloudsS3Service extends S3Service {
|
||||||
jsObject.setETag(eTag);
|
jsObject.setETag(eTag);
|
||||||
return jsObject;
|
return jsObject;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<S3ServiceException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, S3ServiceException.class);
|
||||||
throw new S3ServiceException("error putting object", e);
|
throw new S3ServiceException("error putting object", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,8 @@ import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.options.ListContainerOptions;
|
import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Searches Content-MD5 tag for the value associated with the value
|
* Searches Content-MD5 tag for the value associated with the value
|
||||||
|
@ -63,7 +64,7 @@ public class FindMD5InBlobProperties implements ContainsValueInListStrategy {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format(
|
throw new BlobRuntimeException(String.format(
|
||||||
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
||||||
value), e);
|
value), e);
|
||||||
|
|
|
@ -32,6 +32,8 @@ import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.util.Utils;
|
import org.jclouds.util.Utils;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This will parse and set an appropriate exception on the command object.
|
* This will parse and set an appropriate exception on the command object.
|
||||||
*
|
*
|
||||||
|
@ -72,14 +74,14 @@ public class ParseAzureStorageErrorFromXmlContent implements HttpErrorHandler {
|
||||||
}
|
}
|
||||||
} catch (Exception he) {
|
} catch (Exception he) {
|
||||||
command.setException(new HttpResponseException(command, response, content));
|
command.setException(new HttpResponseException(command, response, content));
|
||||||
Utils.rethrowIfRuntime(he);
|
Throwables.propagateIfPossible(he);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
command.setException(new HttpResponseException(command, response));
|
command.setException(new HttpResponseException(command, response));
|
||||||
Utils.rethrowIfRuntime(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,9 @@ import org.jclouds.blobstore.strategy.ClearContainerStrategy;
|
||||||
import org.jclouds.http.HttpResponseException;
|
import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.rest.InvocationContext;
|
import org.jclouds.rest.InvocationContext;
|
||||||
import org.jclouds.rest.internal.GeneratedHttpRequest;
|
import org.jclouds.rest.internal.GeneratedHttpRequest;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
public class ClearAndDeleteIfNotEmpty implements Function<Exception, Void>, InvocationContext {
|
public class ClearAndDeleteIfNotEmpty implements Function<Exception, Void>, InvocationContext {
|
||||||
|
@ -77,7 +77,7 @@ public class ClearAndDeleteIfNotEmpty implements Function<Exception, Void>, Invo
|
||||||
requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
||||||
return v;
|
return v;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error deleting container: "
|
throw new BlobRuntimeException("Error deleting container: "
|
||||||
+ request.getArgs()[0].toString(), e);
|
+ request.getArgs()[0].toString(), e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,6 @@ import org.jclouds.blobstore.strategy.CountListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.rest.ResourceNotFoundException;
|
import org.jclouds.rest.ResourceNotFoundException;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
|
@ -209,7 +208,7 @@ public abstract class BaseBlobMap<V> {
|
||||||
if (Iterables.size(Iterables.filter(Throwables.getCausalChain(e),
|
if (Iterables.size(Iterables.filter(Throwables.getCausalChain(e),
|
||||||
ResourceNotFoundException.class)) >= 1)
|
ResourceNotFoundException.class)) >= 1)
|
||||||
return false;
|
return false;
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error searching for %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error searching for %1$s:%2$s",
|
||||||
containerName, realKey), e);
|
containerName, realKey), e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,11 +37,11 @@ import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.CountListStrategy;
|
import org.jclouds.blobstore.strategy.CountListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Collections2;
|
import com.google.common.collect.Collections2;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,13 +119,12 @@ public class BlobMapImpl extends BaseBlobMap<Blob> implements BlobMap {
|
||||||
return stripPrefix(connection.getBlob(containerName, realKey).get(
|
return stripPrefix(connection.getBlob(containerName, realKey).get(
|
||||||
requestTimeoutMilliseconds, TimeUnit.MILLISECONDS));
|
requestTimeoutMilliseconds, TimeUnit.MILLISECONDS));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Throwable cause = Throwables.getRootCause(e);
|
if (Iterables.size(Iterables.filter(Throwables.getCausalChain(e),
|
||||||
if (cause instanceof KeyNotFoundException) {
|
KeyNotFoundException.class)) >= 1)
|
||||||
return null;
|
return null;
|
||||||
} else {
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error geting object %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error geting blob %s:%s", containerName,
|
||||||
containerName, realKey), cause);
|
realKey), e);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,8 +139,8 @@ public class BlobMapImpl extends BaseBlobMap<Blob> implements BlobMap {
|
||||||
connection.putBlob(containerName, value).get(requestTimeoutMilliseconds,
|
connection.putBlob(containerName, value).get(requestTimeoutMilliseconds,
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error putting object %1$s:%2$s%n%3$s",
|
throw new BlobRuntimeException(String.format("Error putting blob %s:%s%n%3$s",
|
||||||
containerName, key, value), e);
|
containerName, key, value), e);
|
||||||
}
|
}
|
||||||
return returnVal;
|
return returnVal;
|
||||||
|
@ -163,7 +162,7 @@ public class BlobMapImpl extends BaseBlobMap<Blob> implements BlobMap {
|
||||||
// this will throw an exception if there was a problem
|
// this will throw an exception if there was a problem
|
||||||
put.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
put.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error putting into containerName" + containerName, e);
|
throw new BlobRuntimeException("Error putting into containerName" + containerName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,8 +179,8 @@ public class BlobMapImpl extends BaseBlobMap<Blob> implements BlobMap {
|
||||||
connection.removeBlob(containerName, realKey).get(requestTimeoutMilliseconds,
|
connection.removeBlob(containerName, realKey).get(requestTimeoutMilliseconds,
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error removing object %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error removing blob %s:%s",
|
||||||
containerName, realKey), e);
|
containerName, realKey), e);
|
||||||
}
|
}
|
||||||
return old;
|
return old;
|
||||||
|
|
|
@ -45,12 +45,12 @@ import org.jclouds.http.payloads.ByteArrayPayload;
|
||||||
import org.jclouds.http.payloads.FilePayload;
|
import org.jclouds.http.payloads.FilePayload;
|
||||||
import org.jclouds.http.payloads.InputStreamPayload;
|
import org.jclouds.http.payloads.InputStreamPayload;
|
||||||
import org.jclouds.http.payloads.StringPayload;
|
import org.jclouds.http.payloads.StringPayload;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Collections2;
|
import com.google.common.collect.Collections2;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -82,17 +82,15 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
public InputStream get(Object o) {
|
public InputStream get(Object o) {
|
||||||
String realKey = prefixer.apply(o.toString());
|
String realKey = prefixer.apply(o.toString());
|
||||||
try {
|
try {
|
||||||
return (InputStream) (connection.getBlob(containerName, realKey).get(
|
return connection.getBlob(containerName, realKey).get(requestTimeoutMilliseconds,
|
||||||
requestTimeoutMilliseconds, TimeUnit.MILLISECONDS)).getContent();
|
TimeUnit.MILLISECONDS).getContent();
|
||||||
} catch (KeyNotFoundException e) {
|
|
||||||
return null;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Throwable cause = Throwables.getRootCause(e);
|
if (Iterables.size(Iterables.filter(Throwables.getCausalChain(e),
|
||||||
if (cause instanceof KeyNotFoundException)
|
KeyNotFoundException.class)) >= 1)
|
||||||
return null;
|
return null;
|
||||||
Throwables.propagateIfInstanceOf(e, BlobRuntimeException.class);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error geting object %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error geting blob %s:%s", containerName,
|
||||||
containerName, realKey), e);
|
realKey), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,8 +106,8 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
connection.removeBlob(containerName, realKey).get(requestTimeoutMilliseconds,
|
connection.removeBlob(containerName, realKey).get(requestTimeoutMilliseconds,
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error removing object %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error removing blob %s:%s",
|
||||||
containerName, realKey), e);
|
containerName, realKey), e);
|
||||||
}
|
}
|
||||||
return old;
|
return old;
|
||||||
|
@ -134,7 +132,7 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
return Collections2.transform(getAllBlobs.execute(containerName, options),
|
return Collections2.transform(getAllBlobs.execute(containerName, options),
|
||||||
new Function<Blob, InputStream>() {
|
new Function<Blob, InputStream>() {
|
||||||
public InputStream apply(Blob from) {
|
public InputStream apply(Blob from) {
|
||||||
return (InputStream) from.getContent();
|
return from.getContent();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -147,8 +145,8 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
public Set<Map.Entry<String, InputStream>> entrySet() {
|
public Set<Map.Entry<String, InputStream>> entrySet() {
|
||||||
Set<Map.Entry<String, InputStream>> entrySet = new HashSet<Map.Entry<String, InputStream>>();
|
Set<Map.Entry<String, InputStream>> entrySet = new HashSet<Map.Entry<String, InputStream>>();
|
||||||
for (Blob object : this.getAllBlobs.execute(containerName, options)) {
|
for (Blob object : this.getAllBlobs.execute(containerName, options)) {
|
||||||
entrySet.add(new Entry(pathStripper.apply(object.getMetadata().getName()),
|
entrySet.add(new Entry(pathStripper.apply(object.getMetadata().getName()), object
|
||||||
(InputStream) object.getContent()));
|
.getContent()));
|
||||||
}
|
}
|
||||||
return entrySet;
|
return entrySet;
|
||||||
}
|
}
|
||||||
|
@ -233,15 +231,12 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
object.setPayload(Payloads.newPayload(entry.getValue()));
|
object.setPayload(Payloads.newPayload(entry.getValue()));
|
||||||
object.generateMD5();
|
object.generateMD5();
|
||||||
puts.add(connection.putBlob(containerName, object));
|
puts.add(connection.putBlob(containerName, object));
|
||||||
// / ParamExtractor Funcion<?,String>
|
|
||||||
// / response transformer set key on the way out.
|
|
||||||
// / ExceptionHandler convert 404 to NOT_FOUND
|
|
||||||
}
|
}
|
||||||
for (Future<String> put : puts)
|
for (Future<String> put : puts)
|
||||||
// this will throw an exception if there was a problem
|
// this will throw an exception if there was a problem
|
||||||
put.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
put.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error putting into containerName" + containerName, e);
|
throw new BlobRuntimeException("Error putting into containerName" + containerName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -299,8 +294,8 @@ public class InputStreamMapImpl extends BaseBlobMap<InputStream> implements Inpu
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
return returnVal;
|
return returnVal;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error adding object %1$s:%2$s",
|
throw new BlobRuntimeException(String.format("Error adding blob %s:%s",
|
||||||
containerName, object), e);
|
containerName, object), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,8 +34,8 @@ import org.jclouds.blobstore.reference.BlobStoreConstants;
|
||||||
import org.jclouds.blobstore.strategy.ClearContainerStrategy;
|
import org.jclouds.blobstore.strategy.ClearContainerStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ClearListStrategy;
|
import org.jclouds.blobstore.strategy.ClearListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ public class DeleteAllKeysInList implements ClearListStrategy, ClearContainerStr
|
||||||
try {
|
try {
|
||||||
isdeleted.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
isdeleted.get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error deleting blob in container: " + containerName, e);
|
throw new BlobRuntimeException("Error deleting blob in container: " + containerName, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,7 +29,8 @@ import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.options.ListContainerOptions;
|
import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Searches Content-MD5 tag for the value associated with the value
|
* Searches Content-MD5 tag for the value associated with the value
|
||||||
|
@ -57,7 +58,7 @@ public class FindMD5InList implements ContainsValueInListStrategy {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format(
|
throw new BlobRuntimeException(String.format(
|
||||||
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
"Error searching for ETAG of value: [%2$s] in container:%1$s", containerName,
|
||||||
value), e);
|
value), e);
|
||||||
|
|
|
@ -39,10 +39,10 @@ import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
||||||
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
import org.jclouds.blobstore.strategy.GetBlobsInListStrategy;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
@ -89,7 +89,7 @@ public class GetAllBlobsInListAndRetryOnFailure implements GetBlobsInListStrateg
|
||||||
ifNotFoundRetryOtherwiseAddToSet(container, futureObjectEntry.getKey(),
|
ifNotFoundRetryOtherwiseAddToSet(container, futureObjectEntry.getKey(),
|
||||||
futureObjectEntry.getValue(), objects);
|
futureObjectEntry.getValue(), objects);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException(String.format("Error getting value from blob %1$s",
|
throw new BlobRuntimeException(String.format("Error getting value from blob %1$s",
|
||||||
container), e);
|
container), e);
|
||||||
}
|
}
|
||||||
|
@ -109,8 +109,8 @@ public class GetAllBlobsInListAndRetryOnFailure implements GetBlobsInListStrateg
|
||||||
objects.add(object);
|
objects.add(object);
|
||||||
return;
|
return;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Throwable cause = Throwables.getRootCause(e);
|
if (Iterables.size(Iterables.filter(Throwables.getCausalChain(e),
|
||||||
if (cause instanceof KeyNotFoundException) {
|
KeyNotFoundException.class)) >= 1) {
|
||||||
Thread.sleep(requestRetryMilliseconds);
|
Thread.sleep(requestRetryMilliseconds);
|
||||||
value = connection.getBlob(container, key);
|
value = connection.getBlob(container, key);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -33,8 +33,8 @@ import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.options.ListContainerOptions;
|
import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
||||||
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
import org.jclouds.blobstore.strategy.ListBlobMetadataStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ public class ListBlobMetadataInContainer implements ListBlobMetadataStrategy {
|
||||||
}
|
}
|
||||||
return blobM;
|
return blobM;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
throw new BlobRuntimeException("Error getting resource metadata in container: "
|
throw new BlobRuntimeException("Error getting resource metadata in container: "
|
||||||
+ container, e);
|
+ container, e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,8 @@ import org.jclouds.blobstore.domain.Blob;
|
||||||
import org.jclouds.blobstore.internal.BlobRuntimeException;
|
import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
||||||
import org.jclouds.blobstore.strategy.MkdirStrategy;
|
import org.jclouds.blobstore.strategy.MkdirStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,7 +65,7 @@ public class MarkerFileMkdirStrategy implements MkdirStrategy {
|
||||||
TimeUnit.MILLISECONDS);
|
TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e = Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
if (!(e instanceof KeyNotFoundException))
|
if (!(e instanceof KeyNotFoundException))
|
||||||
throw new BlobRuntimeException("Error creating marker directory: " + containerName
|
throw new BlobRuntimeException("Error creating marker directory: " + containerName
|
||||||
+ "/" + directory, e);
|
+ "/" + directory, e);
|
||||||
|
|
|
@ -30,8 +30,8 @@ import org.jclouds.blobstore.functions.ResourceMetadataToRelativePathResourceMet
|
||||||
import org.jclouds.blobstore.internal.BlobRuntimeException;
|
import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||||
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
import org.jclouds.blobstore.reference.BlobStoreConstants;
|
||||||
import org.jclouds.blobstore.strategy.GetDirectoryStrategy;
|
import org.jclouds.blobstore.strategy.GetDirectoryStrategy;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +76,7 @@ public class MarkersGetDirectoryStrategy implements GetDirectoryStrategy {
|
||||||
directory + suffix).get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS));
|
directory + suffix).get(requestTimeoutMilliseconds, TimeUnit.MILLISECONDS));
|
||||||
} catch (KeyNotFoundException e) {
|
} catch (KeyNotFoundException e) {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e = Utils.<BlobRuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, BlobRuntimeException.class);
|
||||||
if (!(e instanceof KeyNotFoundException))
|
if (!(e instanceof KeyNotFoundException))
|
||||||
throw new BlobRuntimeException("Error determining if a directory exists at: "
|
throw new BlobRuntimeException("Error determining if a directory exists at: "
|
||||||
+ containerName + "/" + directory, e);
|
+ containerName + "/" + directory, e);
|
||||||
|
|
|
@ -41,7 +41,6 @@ import org.jclouds.blobstore.domain.ResourceMetadata;
|
||||||
import org.jclouds.blobstore.domain.ResourceType;
|
import org.jclouds.blobstore.domain.ResourceType;
|
||||||
import org.jclouds.blobstore.util.BlobStoreUtils;
|
import org.jclouds.blobstore.util.BlobStoreUtils;
|
||||||
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.testng.ITestContext;
|
import org.testng.ITestContext;
|
||||||
import org.testng.annotations.AfterClass;
|
import org.testng.annotations.AfterClass;
|
||||||
import org.testng.annotations.BeforeClass;
|
import org.testng.annotations.BeforeClass;
|
||||||
|
@ -49,6 +48,7 @@ import org.testng.annotations.BeforeSuite;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
@ -299,7 +299,7 @@ public class BaseBlobStoreIntegrationTest<A, S> {
|
||||||
|
|
||||||
})));
|
})));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -395,7 +395,7 @@ public class BaseBlobStoreIntegrationTest<A, S> {
|
||||||
assert !context.getBlobStore().containerExists(name) : "container " + name
|
assert !context.getBlobStore().containerExists(name) : "container " + name
|
||||||
+ " still exists";
|
+ " still exists";
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
package org.jclouds.blobstore.integration.internal;
|
package org.jclouds.blobstore.integration.internal;
|
||||||
|
|
||||||
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.afterMarker;
|
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.afterMarker;
|
||||||
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.maxResults;
|
|
||||||
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.inDirectory;
|
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.inDirectory;
|
||||||
|
import static org.jclouds.blobstore.options.ListContainerOptions.Builder.maxResults;
|
||||||
import static org.testng.Assert.assertEquals;
|
import static org.testng.Assert.assertEquals;
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
|
@ -32,9 +32,10 @@ import org.jclouds.blobstore.domain.Blob;
|
||||||
import org.jclouds.blobstore.domain.ListContainerResponse;
|
import org.jclouds.blobstore.domain.ListContainerResponse;
|
||||||
import org.jclouds.blobstore.domain.ListResponse;
|
import org.jclouds.blobstore.domain.ListResponse;
|
||||||
import org.jclouds.blobstore.domain.ResourceMetadata;
|
import org.jclouds.blobstore.domain.ResourceMetadata;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adrian Cole
|
* @author Adrian Cole
|
||||||
*/
|
*/
|
||||||
|
@ -174,7 +175,7 @@ public class BaseContainerIntegrationTest<A, S> extends BaseBlobStoreIntegration
|
||||||
assert !context.getBlobStore().containerExists(containerName) : "container " + containerName
|
assert !context.getBlobStore().containerExists(containerName) : "container " + containerName
|
||||||
+ " still exists";
|
+ " still exists";
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -78,10 +78,10 @@ import org.jclouds.http.HttpRequest;
|
||||||
import org.jclouds.http.HttpResponse;
|
import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.http.HttpResponseException;
|
import org.jclouds.http.HttpResponseException;
|
||||||
import org.jclouds.http.options.HttpRequestOptions;
|
import org.jclouds.http.options.HttpRequestOptions;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
@ -562,8 +562,8 @@ public class StubAsyncBlobStore implements AsyncBlobStore {
|
||||||
try {
|
try {
|
||||||
return immediateFuture((BlobMetadata) copy(getBlob(container, key).get().getMetadata()));
|
return immediateFuture((BlobMetadata) copy(getBlob(container, key).get().getMetadata()));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<ContainerNotFoundException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, ContainerNotFoundException.class);
|
||||||
Utils.<KeyNotFoundException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, KeyNotFoundException.class);
|
||||||
return immediateFailedFuture(e);
|
return immediateFailedFuture(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,8 +23,6 @@ import java.util.concurrent.Executor;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
import org.jclouds.logging.Logger;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
|
||||||
|
@ -40,17 +38,10 @@ public class FutureExceptionParser<T> implements ListenableFuture<T> {
|
||||||
|
|
||||||
private final ListenableFuture<T> delegate;
|
private final ListenableFuture<T> delegate;
|
||||||
private final Function<Exception, T> function;
|
private final Function<Exception, T> function;
|
||||||
private final Logger logger;
|
|
||||||
|
|
||||||
public FutureExceptionParser(ListenableFuture<T> delegate, Function<Exception, T> function) {
|
public FutureExceptionParser(ListenableFuture<T> delegate, Function<Exception, T> function) {
|
||||||
this(delegate, function, Logger.NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
public FutureExceptionParser(ListenableFuture<T> delegate, Function<Exception, T> function,
|
|
||||||
Logger logger) {
|
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
this.function = function;
|
this.function = function;
|
||||||
this.logger = logger;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean cancel(boolean mayInterruptIfRunning) {
|
public boolean cancel(boolean mayInterruptIfRunning) {
|
||||||
|
@ -67,10 +58,7 @@ public class FutureExceptionParser<T> implements ListenableFuture<T> {
|
||||||
|
|
||||||
private T attemptConvert(ExecutionException e) throws ExecutionException {
|
private T attemptConvert(ExecutionException e) throws ExecutionException {
|
||||||
if (e.getCause() instanceof Exception) {
|
if (e.getCause() instanceof Exception) {
|
||||||
|
|
||||||
logger.debug("Processing exception for: %s", e.getCause());
|
|
||||||
T returnVal = function.apply((Exception) e.getCause());
|
T returnVal = function.apply((Exception) e.getCause());
|
||||||
logger.debug("Processed exception for: %s", e.getCause());
|
|
||||||
if (returnVal != null)
|
if (returnVal != null)
|
||||||
return returnVal;
|
return returnVal;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,13 +30,13 @@ import org.jclouds.http.HttpResponse;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.rest.InvocationContext;
|
import org.jclouds.rest.InvocationContext;
|
||||||
import org.jclouds.rest.internal.GeneratedHttpRequest;
|
import org.jclouds.rest.internal.GeneratedHttpRequest;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.xml.sax.ContentHandler;
|
import org.xml.sax.ContentHandler;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
import org.xml.sax.XMLReader;
|
import org.xml.sax.XMLReader;
|
||||||
import org.xml.sax.helpers.DefaultHandler;
|
import org.xml.sax.helpers.DefaultHandler;
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.io.Closeables;
|
import com.google.common.io.Closeables;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,7 +72,7 @@ public class ParseSax<T> implements Function<HttpResponse, T>, InvocationContext
|
||||||
throw new HttpException("No input to parse");
|
throw new HttpException("No input to parse");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<HttpException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, HttpException.class);
|
||||||
throw new HttpException("Error parsing input for " + from, e);
|
throw new HttpException("Error parsing input for " + from, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,8 +92,7 @@ public class ParseSax<T> implements Function<HttpResponse, T>, InvocationContext
|
||||||
StringBuilder message = new StringBuilder();
|
StringBuilder message = new StringBuilder();
|
||||||
message.append("Error parsing input for ").append(handler);
|
message.append("Error parsing input for ").append(handler);
|
||||||
logger.error(e, message.toString());
|
logger.error(e, message.toString());
|
||||||
if (!(e instanceof NullPointerException))
|
Throwables.propagateIfPossible(e, HttpException.class);
|
||||||
Utils.<HttpException> rethrowIfRuntimeOrSameType(e);
|
|
||||||
throw new HttpException(message.toString(), e);
|
throw new HttpException(message.toString(), e);
|
||||||
} finally {
|
} finally {
|
||||||
Closeables.closeQuietly(xml);
|
Closeables.closeQuietly(xml);
|
||||||
|
|
|
@ -25,7 +25,6 @@ import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
@ -35,7 +34,6 @@ import org.jclouds.logging.Logger;
|
||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
import com.google.common.collect.ComputationException;
|
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import com.google.common.io.Closeables;
|
import com.google.common.io.Closeables;
|
||||||
import com.google.common.io.OutputSupplier;
|
import com.google.common.io.OutputSupplier;
|
||||||
|
@ -82,55 +80,6 @@ public class Utils {
|
||||||
@Resource
|
@Resource
|
||||||
protected static Logger logger = Logger.NULL;
|
protected static Logger logger = Logger.NULL;
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param <E>
|
|
||||||
* Exception type you'd like rethrown
|
|
||||||
* @param e
|
|
||||||
* Exception you are inspecting
|
|
||||||
* @throws E
|
|
||||||
*/
|
|
||||||
public static void rethrowIfRuntime(Exception e) {
|
|
||||||
if (e instanceof ExecutionException || e instanceof ComputationException) {
|
|
||||||
Throwable nested = e.getCause();
|
|
||||||
if (nested instanceof Error)
|
|
||||||
throw (Error) nested;
|
|
||||||
e = (Exception) nested;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e instanceof RuntimeException) {
|
|
||||||
throw (RuntimeException) e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param <E>
|
|
||||||
* Exception type you'd like rethrown
|
|
||||||
* @param e
|
|
||||||
* Exception you are inspecting
|
|
||||||
* @throws E
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public static <E extends Exception> Exception rethrowIfRuntimeOrSameType(Exception e) throws E {
|
|
||||||
if (e instanceof ExecutionException || e instanceof ComputationException) {
|
|
||||||
Throwable nested = e.getCause();
|
|
||||||
if (nested instanceof Error)
|
|
||||||
throw (Error) nested;
|
|
||||||
e = (Exception) nested;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e instanceof RuntimeException) {
|
|
||||||
throw (RuntimeException) e;
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
throw (E) e;
|
|
||||||
} catch (ClassCastException throwAway) {
|
|
||||||
// using cce as there's no way to do instanceof E in current java
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String toStringAndClose(InputStream input) throws IOException {
|
public static String toStringAndClose(InputStream input) throws IOException {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -41,9 +41,9 @@ import org.jclouds.http.TransformingHttpCommandExecutorService;
|
||||||
import org.jclouds.lifecycle.BaseLifeCycle;
|
import org.jclouds.lifecycle.BaseLifeCycle;
|
||||||
import org.jclouds.logging.Logger;
|
import org.jclouds.logging.Logger;
|
||||||
import org.jclouds.logging.Logger.LoggerFactory;
|
import org.jclouds.logging.Logger.LoggerFactory;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Function;
|
import com.google.common.base.Function;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.MapMaker;
|
import com.google.common.collect.MapMaker;
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ public class ConnectionPoolTransformingHttpCommandExecutorService<C> extends Bas
|
||||||
try {
|
try {
|
||||||
invoke(rendezvous);
|
invoke(rendezvous);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<InterruptedException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e, InterruptedException.class);
|
||||||
logger.error(e, "Error processing command %s", rendezvous.getCommand());
|
logger.error(e, "Error processing command %s", rendezvous.getCommand());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,9 +58,9 @@ import org.jclouds.blobstore.options.ListContainerOptions;
|
||||||
import org.jclouds.blobstore.strategy.IsDirectoryStrategy;
|
import org.jclouds.blobstore.strategy.IsDirectoryStrategy;
|
||||||
import org.jclouds.blobstore.strategy.internal.MarkersIsDirectoryStrategy;
|
import org.jclouds.blobstore.strategy.internal.MarkersIsDirectoryStrategy;
|
||||||
import org.jclouds.blobstore.util.BlobStoreUtils;
|
import org.jclouds.blobstore.util.BlobStoreUtils;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
|
||||||
|
@ -199,7 +199,7 @@ public class BlobStoreFileObject extends AbstractFileObject {
|
||||||
throw new FileNotFolderException(getName());
|
throw new FileNotFolderException(getName());
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Utils.<FileNotFolderException> rethrowIfRuntimeOrSameType(ex);
|
Throwables.propagateIfPossible(ex, FileNotFolderException.class);
|
||||||
throw new FileNotFolderException(getName(), ex);
|
throw new FileNotFolderException(getName(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,6 @@ import org.jclouds.predicates.RetryablePredicate;
|
||||||
import org.jclouds.predicates.SocketOpen;
|
import org.jclouds.predicates.SocketOpen;
|
||||||
import org.jclouds.rest.ConfiguresRestClient;
|
import org.jclouds.rest.ConfiguresRestClient;
|
||||||
import org.jclouds.rest.RestClientFactory;
|
import org.jclouds.rest.RestClientFactory;
|
||||||
import org.jclouds.util.Utils;
|
|
||||||
import org.jclouds.vcloud.VCloudAsyncClient;
|
import org.jclouds.vcloud.VCloudAsyncClient;
|
||||||
import org.jclouds.vcloud.VCloudClient;
|
import org.jclouds.vcloud.VCloudClient;
|
||||||
import org.jclouds.vcloud.VCloudToken;
|
import org.jclouds.vcloud.VCloudToken;
|
||||||
|
@ -71,6 +70,7 @@ import org.jclouds.vcloud.predicates.TaskSuccess;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
import com.google.common.base.Supplier;
|
import com.google.common.base.Supplier;
|
||||||
|
import com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
@ -141,7 +141,7 @@ public class VCloudRestClientModule extends AbstractModule {
|
||||||
try {
|
try {
|
||||||
return login.login().get(180, TimeUnit.SECONDS);
|
return login.login().get(180, TimeUnit.SECONDS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Utils.<RuntimeException> rethrowIfRuntimeOrSameType(e);
|
Throwables.propagateIfPossible(e);
|
||||||
throw new RuntimeException("Error logging in", e);
|
throw new RuntimeException("Error logging in", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue