You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/03/05 08:11:56 UTC
incubator-lens git commit: LENS-280 NPE when query fails with
execute_timeout api (Amareshwari via jdhok)
Repository: incubator-lens
Updated Branches:
refs/heads/master 252d67b9c -> ea8b970b6
LENS-280 NPE when query fails with execute_timeout api (Amareshwari via jdhok)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/ea8b970b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/ea8b970b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/ea8b970b
Branch: refs/heads/master
Commit: ea8b970b6cf7bdf6e2768d2012b55b075efbac3c
Parents: 252d67b
Author: jdhok <ja...@inmobi.com>
Authored: Thu Mar 5 12:41:43 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Thu Mar 5 12:41:43 2015 +0530
----------------------------------------------------------------------
.../server/query/QueryExecutionServiceImpl.java | 4 ++-
.../lens/server/query/TestQueryService.java | 30 ++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ea8b970b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index 15b9849..2f44938 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -1435,6 +1435,9 @@ public class QueryExecutionServiceImpl extends LensService implements QueryExecu
}
}
QueryCompletionListener listener = new QueryCompletionListenerImpl(handle);
+ if (getQueryContext(sessionHandle, handle).getSelectedDriver() == null) {
+ return result;
+ }
getQueryContext(sessionHandle, handle).getSelectedDriver()
.registerForCompletionNotification(handle, timeoutMillis, listener);
try {
@@ -1448,7 +1451,6 @@ public class QueryExecutionServiceImpl extends LensService implements QueryExecu
result.setResult(getResultset(handle).toQueryResult());
}
return result;
-
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ea8b970b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index c350d09..ea991b7 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -1278,6 +1278,36 @@ public class TestQueryService extends LensJerseyTest {
}
/**
+ * Test execute with timeout query.
+ *
+ * @throws IOException Signals that an I/O exception has occurred.
+ * @throws InterruptedException the interrupted exception
+ */
+ @Test
+ public void testExecuteWithTimeoutFailingQuery() throws IOException, InterruptedException {
+ final WebTarget target = target().path("queryapi/queries");
+
+ final FormDataMultiPart mp = new FormDataMultiPart();
+ mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId,
+ MediaType.APPLICATION_XML_TYPE));
+ mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("query").build(), "select ID from nonexist"));
+ mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute_with_timeout"));
+ // set a timeout value enough for tests
+ mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("timeoutmillis").build(), "300000"));
+ mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), new LensConf(),
+ MediaType.APPLICATION_XML_TYPE));
+
+ QueryHandleWithResultSet result = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
+ QueryHandleWithResultSet.class);
+ Assert.assertNotNull(result.getQueryHandle());
+ Assert.assertNull(result.getResult());
+
+ LensQuery ctx = target.path(result.getQueryHandle().toString()).queryParam("sessionid", lensSessionId).request()
+ .get(LensQuery.class);
+ Assert.assertEquals(ctx.getStatus().getStatus(), Status.FAILED);
+ }
+
+ /**
* Test default config.
*
* @throws LensException the lens exception
Fwd: incubator-lens git commit: LENS-280 NPE when query fails with
execute_timeout api (Amareshwari via jdhok)
Posted by Jaideep Dhok <ja...@inmobi.com>.
I made a typo in the JIRA number with this commit. Anyone know how to fix
this?
Thanks,
Jaideep
---------- Forwarded message ----------
From: <jd...@apache.org>
Date: Thu, Mar 5, 2015 at 12:41 PM
Subject: incubator-lens git commit: LENS-280 NPE when query fails with
execute_timeout api (Amareshwari via jdhok)
To: commits@lens.incubator.apache.org
Repository: incubator-lens
Updated Branches:
refs/heads/master 252d67b9c -> ea8b970b6
LENS-280 NPE when query fails with execute_timeout api (Amareshwari via
jdhok)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit:
http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/ea8b970b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/ea8b970b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/ea8b970b
Branch: refs/heads/master
Commit: ea8b970b6cf7bdf6e2768d2012b55b075efbac3c
Parents: 252d67b
Author: jdhok <ja...@inmobi.com>
Authored: Thu Mar 5 12:41:43 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Thu Mar 5 12:41:43 2015 +0530
----------------------------------------------------------------------
.../server/query/QueryExecutionServiceImpl.java | 4 ++-
.../lens/server/query/TestQueryService.java | 30 ++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ea8b970b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index 15b9849..2f44938 100644
---
a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++
b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -1435,6 +1435,9 @@ public class QueryExecutionServiceImpl extends
LensService implements QueryExecu
}
}
QueryCompletionListener listener = new
QueryCompletionListenerImpl(handle);
+ if (getQueryContext(sessionHandle, handle).getSelectedDriver() ==
null) {
+ return result;
+ }
getQueryContext(sessionHandle, handle).getSelectedDriver()
.registerForCompletionNotification(handle, timeoutMillis, listener);
try {
@@ -1448,7 +1451,6 @@ public class QueryExecutionServiceImpl extends
LensService implements QueryExecu
result.setResult(getResultset(handle).toQueryResult());
}
return result;
-
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ea8b970b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
----------------------------------------------------------------------
diff --git
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index c350d09..ea991b7 100644
---
a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++
b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -1278,6 +1278,36 @@ public class TestQueryService extends LensJerseyTest
{
}
/**
+ * Test execute with timeout query.
+ *
+ * @throws IOException Signals that an I/O exception has
occurred.
+ * @throws InterruptedException the interrupted exception
+ */
+ @Test
+ public void testExecuteWithTimeoutFailingQuery() throws IOException,
InterruptedException {
+ final WebTarget target = target().path("queryapi/queries");
+
+ final FormDataMultiPart mp = new FormDataMultiPart();
+ mp.bodyPart(new
FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(),
lensSessionId,
+ MediaType.APPLICATION_XML_TYPE));
+ mp.bodyPart(new
FormDataBodyPart(FormDataContentDisposition.name("query").build(), "select
ID from nonexist"));
+ mp.bodyPart(new
FormDataBodyPart(FormDataContentDisposition.name("operation").build(),
"execute_with_timeout"));
+ // set a timeout value enough for tests
+ mp.bodyPart(new
FormDataBodyPart(FormDataContentDisposition.name("timeoutmillis").build(),
"300000"));
+ mp.bodyPart(new
FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(),
new LensConf(),
+ MediaType.APPLICATION_XML_TYPE));
+
+ QueryHandleWithResultSet result =
target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE),
+ QueryHandleWithResultSet.class);
+ Assert.assertNotNull(result.getQueryHandle());
+ Assert.assertNull(result.getResult());
+
+ LensQuery ctx =
target.path(result.getQueryHandle().toString()).queryParam("sessionid",
lensSessionId).request()
+ .get(LensQuery.class);
+ Assert.assertEquals(ctx.getStatus().getStatus(), Status.FAILED);
+ }
+
+ /**
* Test default config.
*
* @throws LensException the lens exception
--
-
Jaideep Dhok
--
_____________________________________________________________
The information contained in this communication is intended solely for the
use of the individual or entity to whom it is addressed and others
authorized to receive it. It may contain confidential or legally privileged
information. If you are not the intended recipient you are hereby notified
that any disclosure, copying, distribution or taking any action in reliance
on the contents of this information is strictly prohibited and may be
unlawful. If you have received this communication in error, please notify
us immediately by responding to this email and then delete it from your
system. The firm is neither liable for the proper and complete transmission
of the information contained in this communication nor for any delay in its
receipt.