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

Reply via email to