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

weichiu pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 6aa6345  HDFS-14242. OIV WebImageViewer: NPE when param op is not 
specified. Contributed by Siyao Meng.
6aa6345 is described below

commit 6aa63452b358cf0ba8687ec89b5d6c3a99649bc5
Author: Siyao Meng <[email protected]>
AuthorDate: Wed Feb 6 12:18:35 2019 -0800

    HDFS-14242. OIV WebImageViewer: NPE when param op is not specified. 
Contributed by Siyao Meng.
    
    Signed-off-by: Wei-Chiu Chuang <[email protected]>
---
 .../hdfs/tools/offlineImageViewer/FSImageHandler.java |  7 ++++++-
 .../offlineImageViewer/TestOfflineImageViewer.java    | 19 +++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/FSImageHandler.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/FSImageHandler.java
index ad51b72..9b0031a 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/FSImageHandler.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/FSImageHandler.java
@@ -85,10 +85,15 @@ class FSImageHandler extends 
SimpleChannelInboundHandler<HttpRequest> {
     }
 
     QueryStringDecoder decoder = new QueryStringDecoder(request.getUri());
+    // check path. throw exception if path doesn't start with WEBHDFS_PREFIX
+    String path = getPath(decoder);
     final String op = getOp(decoder);
+    // check null op
+    if (op == null) {
+      throw new IllegalArgumentException("Param op must be specified.");
+    }
 
     final String content;
-    String path = getPath(decoder);
     switch (op) {
     case "GETFILESTATUS":
       content = image.getFileStatus(path);
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java
index a01de74..1895ada 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineImageViewer/TestOfflineImageViewer.java
@@ -625,6 +625,25 @@ public class TestOfflineImageViewer {
   }
 
   @Test
+  public void testWebImageViewerNullOp() throws Exception {
+    WebImageViewer viewer = new WebImageViewer(
+        NetUtils.createSocketAddr("localhost:0"));
+    try {
+      viewer.initServer(originalFsimage.getAbsolutePath());
+      int port = viewer.getPort();
+
+      // null op
+      URL url = new URL("http://localhost:"; + port +
+          "/webhdfs/v1/");
+      // should get HTTP_BAD_REQUEST. NPE gets HTTP_INTERNAL_ERROR
+      verifyHttpResponseCode(HttpURLConnection.HTTP_BAD_REQUEST, url);
+    } finally {
+      // shutdown the viewer
+      viewer.close();
+    }
+  }
+
+  @Test
   public void testWebImageViewerSecureMode() throws Exception {
     Configuration conf = new Configuration();
     conf.set(HADOOP_SECURITY_AUTHENTICATION, "kerberos");


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

Reply via email to