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);
