Repository: tajo
Updated Branches:
  refs/heads/master 1842ee194 -> ab0d09489


Squashed commit of the following:

commit 783a4236a265c5c3f743b6cf14878bc0b0857d9e
Author: charsyam <[email protected]>
Date:   Sun Oct 18 01:21:08 2015 +0900

    TAJO-1936: Fix NPE

    apply review

    remove unused import

    remove invalid conf


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/ab0d0948
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/ab0d0948
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/ab0d0948

Branch: refs/heads/master
Commit: ab0d0948966ae905bc46419a164fa672af813716
Parents: 1842ee1
Author: charsyam <[email protected]>
Authored: Tue Oct 20 23:33:24 2015 +0900
Committer: charsyam <[email protected]>
Committed: Tue Oct 20 23:33:24 2015 +0900

----------------------------------------------------------------------
 CHANGES                                           |  2 ++
 .../ws/rs/resources/TestQueryResultResource.java  | 13 ++++++++++++-
 .../tajo/ws/rs/resources/QueryResource.java       |  6 ++++++
 .../tajo/ws/rs/resources/QueryResultResource.java | 12 ++++++++++++
 .../tajo/ws/rs/resources/SessionsResource.java    | 18 ++++++++++++++++++
 5 files changed, 50 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tajo/blob/ab0d0948/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 57d72a5..4d64ae1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -54,6 +54,8 @@ Release 0.12.0 - unreleased
 
   SUB TASKS
 
+    TAJO-1936: NPE when calling the query result REST api(DaeMyung Kang)
+
     TAJO-1909: Eliminate remained explicit diamond expressions.
     (Contributed by Dongkyu Hwangbo, committed by hyunsik)
 

http://git-wip-us.apache.org/repos/asf/tajo/blob/ab0d0948/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
----------------------------------------------------------------------
diff --git 
a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
 
b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
index 275e255..2ab1add 100644
--- 
a/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
+++ 
b/tajo-core-tests/src/test/java/org/apache/tajo/ws/rs/resources/TestQueryResultResource.java
@@ -39,6 +39,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import javax.ws.rs.BadRequestException;
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.client.Entity;
@@ -58,7 +59,6 @@ import static org.apache.tajo.exception.ErrorUtil.isOk;
 import static org.junit.Assert.*;
 
 public class TestQueryResultResource extends QueryTestCaseBase {
-
   private URI restServiceURI;
   private URI sessionsURI;
   private URI queriesURI;
@@ -150,6 +150,17 @@ public class TestQueryResultResource extends 
QueryTestCaseBase {
     assertNotNull(response.getResultset().getLink());
   }
 
+  @Test(expected = BadRequestException.class)
+  public void testGetQueryResultWithoutSessionId() throws Exception {
+    String sessionId = generateNewSessionAndGetId();
+    URI queryIdURI = sendNewQueryResquest(sessionId, "select * from lineitem");
+    URI queryResultURI = new URI(queryIdURI + "/result");
+
+    GetQueryResultDataResponse response = restClient.target(queryResultURI)
+            .request()
+            .get(new GenericType<>(GetQueryResultDataResponse.class));
+  }
+
   @Test
   public void testGetQueryResultNotFound() throws Exception {
     String sessionId = generateNewSessionAndGetId();

http://git-wip-us.apache.org/repos/asf/tajo/blob/ab0d0948/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java 
b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java
index f7d1897..defb342 100644
--- a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java
+++ b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResource.java
@@ -213,6 +213,12 @@ public class QueryResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       JerseyResourceDelegateContextKey<SubmitQueryRequest> 
submitQueryRequestKey =
           JerseyResourceDelegateContextKey.valueOf(submitQueryRequestKeyName, 
SubmitQueryRequest.class);

http://git-wip-us.apache.org/repos/asf/tajo/blob/ab0d0948/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java
 
b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java
index 029a9ac..2438060 100644
--- 
a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java
+++ 
b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/QueryResultResource.java
@@ -155,6 +155,12 @@ public class QueryResultResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       
       response = JerseyResourceDelegateUtil.runJerseyResourceDelegate(
@@ -256,6 +262,12 @@ public class QueryResultResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       JerseyResourceDelegateContextKey<Long> cacheIdKey =
           JerseyResourceDelegateContextKey.valueOf(cacheIdKeyName, Long.class);

http://git-wip-us.apache.org/repos/asf/tajo/blob/ab0d0948/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/SessionsResource.java
----------------------------------------------------------------------
diff --git 
a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/SessionsResource.java 
b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/SessionsResource.java
index f679f7a..b8655e9 100644
--- 
a/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/SessionsResource.java
+++ 
b/tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/SessionsResource.java
@@ -177,6 +177,12 @@ public class SessionsResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       
       response = JerseyResourceDelegateUtil.runJerseyResourceDelegate(
@@ -239,6 +245,12 @@ public class SessionsResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       
       response = JerseyResourceDelegateUtil.runJerseyResourceDelegate(
@@ -308,6 +320,12 @@ public class SessionsResource {
       initializeContext();
       JerseyResourceDelegateContextKey<String> sessionIdKey =
           JerseyResourceDelegateContextKey.valueOf(sessionIdKeyName, 
String.class);
+
+      if (sessionId == null || sessionId.isEmpty()) {
+        return ResourcesUtil.createBadRequestResponse(LOG, "Session id is 
required. Please refer the header " +
+                QueryResource.tajoSessionIdHeaderName);
+      }
+
       context.put(sessionIdKey, sessionId);
       JerseyResourceDelegateContextKey<Map> variablesMapKey =
           JerseyResourceDelegateContextKey.valueOf(variablesKeyName, 
Map.class);

Reply via email to