This is an automated email from the ASF dual-hosted git repository.

elek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 36778af  HDDS-5128. Return specific error messages for S3-SDK (#2169)
36778af is described below

commit 36778afd8de75b7b77962514595189701d06333c
Author: Symious <[email protected]>
AuthorDate: Fri May 14 17:34:03 2021 +0800

    HDDS-5128. Return specific error messages for S3-SDK (#2169)
---
 .../org/apache/hadoop/ozone/s3/OzoneClientProducer.java | 17 ++++++++++++-----
 .../apache/hadoop/ozone/s3/TestOzoneClientProducer.java |  4 ++--
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
index 4264f41..d08fd92 100644
--- 
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
+++ 
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
@@ -21,6 +21,7 @@ import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.inject.Produces;
 import javax.inject.Inject;
+import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.Context;
 import java.io.IOException;
@@ -76,7 +77,8 @@ public class OzoneClientProducer {
   private ContainerRequestContext context;
 
   @Produces
-  public OzoneClient createClient() throws OS3Exception, IOException {
+  public OzoneClient createClient() throws WebApplicationException,
+      IOException {
     client = getClient(ozoneConfiguration);
     return client;
   }
@@ -87,7 +89,7 @@ public class OzoneClientProducer {
   }
 
   private OzoneClient getClient(OzoneConfiguration config)
-      throws OS3Exception {
+      throws WebApplicationException {
     OzoneClient ozoneClient = null;
     try {
       SignatureInfo signatureInfo = signatureProcessor.parseSignature();
@@ -134,14 +136,14 @@ public class OzoneClientProducer {
       if (LOG.isDebugEnabled()) {
         LOG.debug("Error during Client Creation: ", ex);
       }
-      throw ex;
+      throw wrapOS3Exception(ex);
     } catch (Throwable t) {
       // For any other critical errors during object creation throw Internal
       // error.
       if (LOG.isDebugEnabled()) {
         LOG.debug("Error during Client Creation: ", t);
       }
-      throw INTERNAL_ERROR;
+      throw wrapOS3Exception(INTERNAL_ERROR);
     }
     return ozoneClient;
   }
@@ -162,7 +164,7 @@ public class OzoneClientProducer {
   private void validateAccessId(String awsAccessId) throws Exception {
     if (awsAccessId == null || awsAccessId.equals("")) {
       LOG.error("Malformed s3 header. awsAccessID: ", awsAccessId);
-      throw MALFORMED_HEADER;
+      throw wrapOS3Exception(MALFORMED_HEADER);
     }
   }
 
@@ -174,4 +176,9 @@ public class OzoneClientProducer {
   public void setSignatureParser(SignatureProcessor awsSignatureProcessor) {
     this.signatureProcessor = awsSignatureProcessor;
   }
+
+  private WebApplicationException wrapOS3Exception(OS3Exception os3Exception) {
+    return new WebApplicationException(os3Exception,
+        os3Exception.getHttpCode());
+  }
 }
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
index 127bd4e..38776f1 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/TestOzoneClientProducer.java
@@ -17,6 +17,7 @@
  */
 package org.apache.hadoop.ozone.s3;
 
+import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.core.MultivaluedHashMap;
 import javax.ws.rs.core.MultivaluedMap;
@@ -28,7 +29,6 @@ import java.util.Collection;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.OzoneConfigKeys;
 import org.apache.hadoop.ozone.om.OMConfigKeys;
-import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.signature.AWSSignatureProcessor;
 
 import static 
org.apache.hadoop.ozone.s3.signature.SignatureParser.AUTHORIZATION_HEADER;
@@ -128,7 +128,7 @@ public class TestOzoneClientProducer {
       producer.createClient();
       fail("testGetClientFailure");
     } catch (Exception ex) {
-      Assert.assertTrue(ex instanceof OS3Exception);
+      Assert.assertTrue(ex instanceof WebApplicationException);
     }
   }
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to