View Javadoc

1   /**
2    * Licensed to jclouds, Inc. (jclouds) under one or more
3    * contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  jclouds licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.jclouds.aws;
20  
21  import org.jclouds.aws.domain.AWSError;
22  import org.jclouds.http.HttpCommand;
23  import org.jclouds.http.HttpResponse;
24  import org.jclouds.http.HttpResponseException;
25  
26  /**
27   * Encapsulates an AWS Error from Amazon.
28   * 
29   * @see <a href="http://docs.amazonwebservices.com/AmazonS3/2006-03-01/UsingRESTError.html" />
30   * @see AWSError
31   * @see org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent
32   * @author Adrian Cole
33   * 
34   */
35  public class AWSResponseException extends HttpResponseException {
36  
37     private static final long serialVersionUID = 1L;
38  
39     private AWSError error = new AWSError();
40  
41     public AWSResponseException(HttpCommand command, HttpResponse response, AWSError error) {
42        super(String.format("request %s failed with code %s, error: %s", command.getCurrentRequest().getRequestLine(), response
43                 .getStatusCode(), error.toString()), command, response);
44        this.setError(error);
45  
46     }
47  
48     public AWSResponseException(HttpCommand command, HttpResponse response, AWSError error,
49              Throwable cause) {
50        super(String.format("request %1$s failed with error: %2$s", command.getCurrentRequest().getRequestLine(), error
51                 .toString()), command, response, cause);
52        this.setError(error);
53  
54     }
55  
56     public AWSResponseException(String message, HttpCommand command, HttpResponse response,
57              AWSError error) {
58        super(message, command, response);
59        this.setError(error);
60  
61     }
62  
63     public AWSResponseException(String message, HttpCommand command, HttpResponse response,
64              AWSError error, Throwable cause) {
65        super(message, command, response, cause);
66        this.setError(error);
67  
68     }
69  
70     public void setError(AWSError error) {
71        this.error = error;
72     }
73  
74     public AWSError getError() {
75        return error;
76     }
77  
78  }