SQOOP-2823: Sqoop2: RESTiliency: Remove repetitive try-catch block for accessing...
authorColin Ma <colin@apache.org>
Thu, 18 Feb 2016 02:59:10 +0000 (10:59 +0800)
committerColin Ma <colin@apache.org>
Thu, 18 Feb 2016 02:59:10 +0000 (10:59 +0800)
 (Jarek Jarcec Cecho via Colin Ma)

server/src/main/java/org/apache/sqoop/handler/AuthorizationRequestHandler.java
server/src/main/java/org/apache/sqoop/handler/JobRequestHandler.java
server/src/main/java/org/apache/sqoop/handler/LinkRequestHandler.java
server/src/main/java/org/apache/sqoop/server/RequestContext.java

index 6cd77e9..8d4d72b 100644 (file)
@@ -231,13 +231,7 @@ public class AuthorizationRequestHandler implements RequestHandler {
     AuditLoggerManager manager = AuditLoggerManager.getInstance();
 
     RoleBean bean = new RoleBean();
-
-    try {
-      JSONObject json = JSONUtils.parse(ctx.getRequest().getReader());
-      bean.restore(json);
-    } catch (IOException e) {
-      throw new SqoopException(ServerError.SERVER_0003, "Can't read request content", e);
-    }
+    bean.restore(JSONUtils.parse(ctx.getReader()));
 
     // Get role object
     List<MRole> roles = bean.getRoles();
@@ -261,13 +255,9 @@ public class AuthorizationRequestHandler implements RequestHandler {
     RoleBean rolesBean = new RoleBean();
     PrincipalBean principalsBean = new PrincipalBean();
 
-    try {
-      JSONObject json = JSONUtils.parse(ctx.getRequest().getReader());
+      JSONObject json = JSONUtils.parse(ctx.getReader());
       rolesBean.restore(json);
       principalsBean.restore(json);
-    } catch (IOException e) {
-      throw new SqoopException(ServerError.SERVER_0003, "Can't read request content", e);
-    }
 
     // Get role object
     List<MRole> roles = rolesBean.getRoles();
@@ -293,16 +283,12 @@ public class AuthorizationRequestHandler implements RequestHandler {
     PrincipalBean principalsBean = new PrincipalBean();
     PrivilegesBean privilegesBean = new PrivilegesBean();
 
+    JSONObject json = JSONUtils.parse(ctx.getReader());
+    principalsBean.restore(json);
     try {
-      JSONObject json = JSONUtils.parse(ctx.getRequest().getReader());
-      principalsBean.restore(json);
-      try {
-        privilegesBean.restore(json);
-      } catch (Exception e) {//Privilege is null, revoke all privileges from principal
-        privilegesBean = null;
-      }
-    } catch (IOException e) {
-      throw new SqoopException(ServerError.SERVER_0003, "Can't read request content", e);
+      privilegesBean.restore(json);
+    } catch (Exception e) {//Privilege is null, revoke all privileges from principal
+      privilegesBean = null;
     }
 
     // Get principal object
index 9d259e1..3070059 100644 (file)
@@ -159,13 +159,7 @@ public class JobRequestHandler implements RequestHandler {
     Repository repository = RepositoryManager.getInstance().getRepository();
 
     JobBean bean = new JobBean();
-
-    try {
-      JSONObject json = JSONUtils.parse(ctx.getRequest().getReader());
-      bean.restore(json);
-    } catch (IOException e) {
-      throw new SqoopException(ServerError.SERVER_0003, "Can't read request content", e);
-    }
+    bean.restore(JSONUtils.parse(ctx.getReader()));
 
     String username = ctx.getUserName();
 
index 7d7f1de..b44ae87 100644 (file)
@@ -112,12 +112,7 @@ public class LinkRequestHandler implements RequestHandler {
     Repository repository = RepositoryManager.getInstance().getRepository();
 
     LinkBean linkBean = new LinkBean();
-    try {
-      JSONObject postData = JSONUtils.parse(ctx.getRequest().getReader());
-      linkBean.restore(postData);
-    } catch (IOException e) {
-      throw new SqoopException(ServerError.SERVER_0003, "Can't read request content", e);
-    }
+    linkBean.restore(JSONUtils.parse(ctx.getReader()));
 
     String username = ctx.getUserName();
 
index 2beac2b..7d02066 100644 (file)
@@ -28,6 +28,8 @@ import org.apache.sqoop.utils.UrlSafeUtils;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.io.IOException;
 import java.util.Locale;
 
 public class RequestContext {
@@ -76,6 +78,14 @@ public class RequestContext {
     }
   }
 
+  public BufferedReader getReader() {
+    try {
+      return request.getReader();
+    } catch (IOException e) {
+      throw new SqoopException(ServerError.SERVER_0003, "Expected data stream", e);
+    }
+  }
+
   /**
    * Return last element of URL.
    *