Repository: lens Updated Branches: refs/heads/master df75a4b83 -> 020b65167
LENS-1167 : Fix NPE when result formatting fails Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/020b6516 Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/020b6516 Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/020b6516 Branch: refs/heads/master Commit: 020b651678969289ab12290d292d6043b734b144 Parents: df75a4b Author: Rajat Khandelwal <[email protected]> Authored: Thu Jun 9 09:57:59 2016 +0530 Committer: Amareshwari Sriramadasu <[email protected]> Committed: Thu Jun 9 09:57:59 2016 +0530 ---------------------------------------------------------------------- .../java/org/apache/lens/lib/query/AbstractFileFormatter.java | 6 ++++-- .../java/org/apache/lens/server/query/ResultFormatter.java | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/020b6516/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java ---------------------------------------------------------------------- diff --git a/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java b/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java index 2cd6b3f..bafb2fb 100644 --- a/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java +++ b/lens-query-lib/src/main/java/org/apache/lens/lib/query/AbstractFileFormatter.java @@ -19,6 +19,7 @@ package org.apache.lens.lib.query; import java.io.*; +import java.net.URI; import org.apache.lens.server.api.driver.LensResultSetMetadata; import org.apache.lens.server.api.query.QueryContext; @@ -94,7 +95,7 @@ public abstract class AbstractFileFormatter extends AbstractOutputFormatter impl @Override public void writeExternal(ObjectOutput out) throws IOException { out.writeUTF(metadata.toJson()); - out.writeUTF(finalPath.toString()); + out.writeObject(finalPath == null ? null : finalPath.toUri()); out.writeObject(numRows); // writeObject and readObject have handling for null objects out.writeObject(fileSize); } @@ -102,7 +103,8 @@ public abstract class AbstractFileFormatter extends AbstractOutputFormatter impl @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { metadata = LensResultSetMetadata.fromJson(in.readUTF()); - finalPath = new Path(in.readUTF()); + URI uri = (URI) in.readObject(); + finalPath = uri == null ? null : new Path(uri); numRows = (Integer)in.readObject(); fileSize = (Long)in.readObject(); } http://git-wip-us.apache.org/repos/asf/lens/blob/020b6516/lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java b/lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java index f465e9d..41cf33b 100644 --- a/lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java +++ b/lens-server/src/main/java/org/apache/lens/server/query/ResultFormatter.java @@ -142,6 +142,8 @@ public class ResultFormatter extends AsyncEventListener<QueryExecuted> { metricsService.incrCounter(ResultFormatter.class, "formatting-errors"); log.warn("Exception while formatting result for {}", queryHandle, e); try { + // set output formatter to null so that server restart is faster in case this query is not purged. + ctx.setQueryOutputFormatter(null); queryService.setFailedStatus(ctx, ERROR_MESSAGE, e); } catch (LensException e1) { log.error("Exception while setting failure for {}", queryHandle, e1);
