Repository: lens Updated Branches: refs/heads/master 8cd7c2022 -> a1445f3d3
LENS-990 : Fix exception fetching results while purging a failed query Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/a1445f3d Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/a1445f3d Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/a1445f3d Branch: refs/heads/master Commit: a1445f3d35d4a7e452ced7b1ca4431051382141e Parents: 8cd7c20 Author: Puneet Gupta <puneetgu...@apache.org> Authored: Mon Mar 21 14:32:18 2016 +0530 Committer: Amareshwari Sriramadasu <amareshw...@apache.org> Committed: Mon Mar 21 14:32:18 2016 +0530 ---------------------------------------------------------------------- .../org/apache/lens/server/api/driver/DriverQueryStatus.java | 4 ++++ .../java/org/apache/lens/server/api/query/QueryContext.java | 8 ++++---- .../apache/lens/server/query/QueryExecutionServiceImpl.java | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java ---------------------------------------------------------------------- diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java index 79d8bf1..2374c1e 100644 --- a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java +++ b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/DriverQueryStatus.java @@ -212,4 +212,8 @@ public class DriverQueryStatus implements Serializable { || state.equals(DriverQueryState.CANCELED) || state.equals(DriverQueryState.CLOSED); } + public boolean isSuccessful() { + return state.equals(DriverQueryState.SUCCESSFUL); + } + } http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java ---------------------------------------------------------------------- diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java index d01e4a4..8ee8a3b 100644 --- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java +++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java @@ -335,10 +335,10 @@ public class QueryContext extends AbstractQueryContext { public boolean isResultAvailableInDriver() { // result is available in driver if driverStatus.isResultSetAvailable() - will be true for fetching inmemory // result set. - // if result is persisted in driver driverStatus.isResultSetAvailable() will be false - // so, for select queries, if result is persisted in driver, we return true sothat the result can be fetched thru - // persistent resultset - return isDriverPersistent() || driverStatus.isResultSetAvailable(); + // if result is persisted in driver driverStatus.isResultSetAvailable() will be false but isDriverPersistent will + // be true. So, for select queries, if result is persisted in driver, we return true so that the result can be + // fetched thru persistent resultset + return driverStatus.isSuccessful() && (isDriverPersistent() || driverStatus.isResultSetAvailable()); } /** http://git-wip-us.apache.org/repos/asf/lens/blob/a1445f3d/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 4c95506..90c25e4 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 @@ -538,7 +538,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE if (ctx.isResultAvailableInDriver()) { try { driverRS = ctx.getSelectedDriver().fetchResultSet(getCtx()); - } catch (LensException e) { + } catch (Exception e) { log.error( "Error while getting result ser form driver {}. Driver result set based purging logic will be ignored", ctx.getSelectedDriver(), e);