Search in sources :

Example 36 with ServiceException

use of org.jets3t.service.ServiceException in project cyberduck by iterate-ch.

the class S3ExceptionMappingServiceTest method testDNSFailure.

@Test
public void testDNSFailure() {
    assertEquals("Custom.", new S3ExceptionMappingService().map("custom", new ServiceException("message", new UnknownHostException("h"))).getMessage());
    assertEquals("H. DNS is the network service that translates a server name to its Internet address. This error is most often caused by having no connection to the Internet or a misconfigured network. It can also be caused by an unresponsive DNS server or a firewall preventing access to the network.", new S3ExceptionMappingService().map("custom", new ServiceException("message", new UnknownHostException("h"))).getDetail());
}
Also used : ServiceException(org.jets3t.service.ServiceException) S3ServiceException(org.jets3t.service.S3ServiceException) UnknownHostException(java.net.UnknownHostException) Test(org.junit.Test)

Example 37 with ServiceException

use of org.jets3t.service.ServiceException in project cyberduck by iterate-ch.

the class S3ExceptionMappingServiceTest method testBadRequest.

@Test
public void testBadRequest() {
    final ServiceException f = new ServiceException("m", "<null/>");
    f.setErrorMessage("m");
    f.setResponseCode(400);
    assertTrue(new S3ExceptionMappingService().map(f) instanceof InteroperabilityException);
}
Also used : InteroperabilityException(ch.cyberduck.core.exception.InteroperabilityException) ServiceException(org.jets3t.service.ServiceException) S3ServiceException(org.jets3t.service.S3ServiceException) Test(org.junit.Test)

Example 38 with ServiceException

use of org.jets3t.service.ServiceException in project hadoop by apache.

the class Jets3tNativeFileSystemStore method processException.

/**
 * Handle any service exception by translating it into an IOException
 * @param thrown exception
 * @param original original exception -thrown if no other translation could
 * be made
 * @param key key sought from object store or "" for undefined
 * @return an exception to throw. If isProcessingCause==true this may be null.
 */
private IOException processException(Throwable thrown, Throwable original, String key) {
    IOException result;
    if (thrown.getCause() != null) {
        // recurse down
        result = processException(thrown.getCause(), original, key);
    } else if (thrown instanceof HttpException) {
        // nested HttpException - examine error code and react
        HttpException httpException = (HttpException) thrown;
        String responseMessage = httpException.getResponseMessage();
        int responseCode = httpException.getResponseCode();
        String bucketName = "s3n://" + bucket.getName();
        String text = String.format("%s : %03d : %s", bucketName, responseCode, responseMessage);
        String filename = !key.isEmpty() ? (bucketName + "/" + key) : text;
        IOException ioe;
        switch(responseCode) {
            case 404:
                result = new FileNotFoundException(filename);
                break;
            case // invalid range
            416:
                result = new EOFException(FSExceptionMessages.CANNOT_SEEK_PAST_EOF + ": " + filename);
                break;
            case // forbidden
            403:
                result = new AccessControlException("Permission denied" + ": " + filename);
                break;
            default:
                result = new IOException(text);
        }
        result.initCause(thrown);
    } else if (thrown instanceof S3ServiceException) {
        S3ServiceException se = (S3ServiceException) thrown;
        LOG.debug("S3ServiceException: {}: {} : {}", se.getS3ErrorCode(), se.getS3ErrorMessage(), se, se);
        if ("InvalidRange".equals(se.getS3ErrorCode())) {
            result = new EOFException(FSExceptionMessages.CANNOT_SEEK_PAST_EOF);
        } else {
            result = new S3Exception(se);
        }
    } else if (thrown instanceof ServiceException) {
        ServiceException se = (ServiceException) thrown;
        LOG.debug("S3ServiceException: {}: {} : {}", se.getErrorCode(), se.toString(), se, se);
        result = new S3Exception(se);
    } else if (thrown instanceof IOException) {
        result = (IOException) thrown;
    } else {
        // here there is no exception derived yet.
        // this means no inner cause, and no translation made yet.
        // convert the original to an IOException -rather than just the
        // exception at the base of the tree
        result = new S3Exception(original);
    }
    return result;
}
Also used : ServiceException(org.jets3t.service.ServiceException) S3ServiceException(org.jets3t.service.S3ServiceException) S3Exception(org.apache.hadoop.fs.s3.S3Exception) FileNotFoundException(java.io.FileNotFoundException) EOFException(java.io.EOFException) AccessControlException(org.apache.hadoop.security.AccessControlException) HttpException(org.jets3t.service.impl.rest.HttpException) IOException(java.io.IOException) S3ServiceException(org.jets3t.service.S3ServiceException)

Example 39 with ServiceException

use of org.jets3t.service.ServiceException in project hadoop by apache.

the class Jets3tNativeFileSystemStore method retrieve.

/**
 * @param key
 * The key is the object name that is being retrieved from the S3 bucket
 * @return
 * This method returns null if the key is not found
 * @throws IOException
 */
@Override
public InputStream retrieve(String key) throws IOException {
    try {
        LOG.debug("Getting key: {} from bucket: {}", key, bucket.getName());
        S3Object object = s3Service.getObject(bucket.getName(), key);
        return object.getDataInputStream();
    } catch (ServiceException e) {
        handleException(e, key);
        // return null if key not found
        return null;
    }
}
Also used : ServiceException(org.jets3t.service.ServiceException) S3ServiceException(org.jets3t.service.S3ServiceException) S3Object(org.jets3t.service.model.S3Object)

Example 40 with ServiceException

use of org.jets3t.service.ServiceException in project hadoop by apache.

the class Jets3tNativeFileSystemStore method retrieve.

/**
 * @param key
 * The key is the object name that is being retrieved from the S3 bucket
 * @return
 * This method returns null if the key is not found
 * @throws IOException
 */
@Override
public InputStream retrieve(String key, long byteRangeStart) throws IOException {
    try {
        LOG.debug("Getting key: {} from bucket: {} with byteRangeStart: {}", key, bucket.getName(), byteRangeStart);
        S3Object object = s3Service.getObject(bucket, key, null, null, null, null, byteRangeStart, null);
        return object.getDataInputStream();
    } catch (ServiceException e) {
        handleException(e, key);
        return null;
    }
}
Also used : ServiceException(org.jets3t.service.ServiceException) S3ServiceException(org.jets3t.service.S3ServiceException) S3Object(org.jets3t.service.model.S3Object)

Aggregations

ServiceException (org.jets3t.service.ServiceException)67 S3ServiceException (org.jets3t.service.S3ServiceException)24 Path (ch.cyberduck.core.Path)22 IOException (java.io.IOException)18 S3Object (org.jets3t.service.model.S3Object)16 StorageObject (org.jets3t.service.model.StorageObject)9 Test (org.junit.Test)9 AccessDeniedException (ch.cyberduck.core.exception.AccessDeniedException)8 InteroperabilityException (ch.cyberduck.core.exception.InteroperabilityException)8 NotfoundException (ch.cyberduck.core.exception.NotfoundException)8 ArrayList (java.util.ArrayList)7 BackgroundException (ch.cyberduck.core.exception.BackgroundException)6 MultipartUpload (org.jets3t.service.model.MultipartUpload)6 PathAttributes (ch.cyberduck.core.PathAttributes)4 HostPreferences (ch.cyberduck.core.preferences.HostPreferences)4 SegmentLoadingException (io.druid.segment.loading.SegmentLoadingException)4 BufferedInputStream (java.io.BufferedInputStream)4 InputStream (java.io.InputStream)4 AttributedList (ch.cyberduck.core.AttributedList)3 DefaultIOExceptionMappingService (ch.cyberduck.core.DefaultIOExceptionMappingService)3