/* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.s3.model; import com.amazonaws.AmazonServiceException; /** * Provides an extension of the AmazonServiceException for errors reported by * Amazon S3 while processing a request. In particular, this class provides * access to Amazon S3's extended request ID. This ID is required debugging * information in the case the user needs to contact Amazon about an issue where * Amazon S3 is incorrectly handling a request. */ public class AmazonS3Exception extends AmazonServiceException { private static final long serialVersionUID = 7573680383273658477L; /** * An S3 specific request ID that provides additional debugging information. */ private String extendedRequestId; /** * An S3 specific CloudFront ID in responses from the accelerate endpoint. */ private String cloudFrontId; /** * Constructs a new {@link AmazonS3Exception} with the specified message. * * @param message The error message describing why this exception was * thrown. * @see AmazonS3Exception#AmazonS3Exception(String, Exception) */ public AmazonS3Exception(String message) { super(message); } /** * Constructs a new {@link AmazonS3Exception} with the specified message and * root cause. * * @param message The error message describing why this exception was * thrown. * @param cause The root exception that caused this exception to be thrown. * @see AmazonS3Exception#AmazonS3Exception(String) */ public AmazonS3Exception(String message, Exception cause) { super(message, cause); } /** * Gets Amazon S3's extended request ID. This ID is required debugging * information in the case the user needs to contact Amazon about an issue * where Amazon S3 is incorrectly handling a request. * * @return Amazon S3's extended request ID. * @see AmazonS3Exception#setExtendedRequestId(String) */ public String getExtendedRequestId() { return extendedRequestId; } /** * Sets Amazon S3's extended request ID. * * @param extendedRequestId S3's extended request ID. * @see AmazonS3Exception#getExtendedRequestId() */ public void setExtendedRequestId(String extendedRequestId) { this.extendedRequestId = extendedRequestId; } /** * Gets Amazon S3's CloudFront ID when the request is performed in the * accelerate mode. * * @return Amazon S3's CloudFront ID in response from the accelerate * endpoint. * @see AmazonS3Exception#setCloudFrontId(String) */ public String getCloudFrontId() { return cloudFrontId; } /** * Sets Amazon S3's CloudFront ID. * * @param cloudFrontId Amazon S3's CloudFront ID in response from the * accelerate endpoint. */ public void setCloudFrontId(String cloudFrontId) { this.cloudFrontId = cloudFrontId; } /** * Extends the implementation from AmazonServiceException to include * additional information on S3's extended request ID. */ @Override public String toString() { return super.toString() + ", " + "S3 Extended Request ID: " + getExtendedRequestId(); } }