LENS-576 : Cannot retrieve query results on lens server restart
Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/5bae273e Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/5bae273e Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/5bae273e Branch: refs/heads/current-release-line Commit: 5bae273eef68396e42a3678b1182b529c6e42d69 Parents: b2c8fc0 Author: Deepak Barr <[email protected]> Authored: Fri Sep 25 13:39:44 2015 +0530 Committer: Rajat Khandelwal <[email protected]> Committed: Fri Sep 25 13:39:44 2015 +0530 ---------------------------------------------------------------------- .../lens/lib/query/AbstractFileFormatter.java | 18 +++++ .../lens/lib/query/WrappedFileFormatter.java | 13 ++++ .../lib/query/MockLensResultSetMetadata.java | 65 +++++++++++++++++ .../lib/query/TestAbstractFileFormatter.java | 73 +++++++++++--------- .../api/driver/LensResultSetMetadata.java | 49 +++++++++++++ .../lens/server/api/query/QueryContext.java | 2 +- .../server/api/query/QueryOutputFormatter.java | 3 +- .../lens/server/query/LensPersistentResult.java | 6 +- .../server/query/QueryExecutionServiceImpl.java | 39 +---------- 9 files changed, 193 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/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 ae5af03..8c06621 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,8 @@ package org.apache.lens.lib.query; import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.apache.lens.server.api.driver.LensResultSetMetadata; import org.apache.lens.server.api.query.QueryContext; @@ -90,4 +92,20 @@ public abstract class AbstractFileFormatter extends AbstractOutputFormatter impl public String getFinalOutputPath() { return finalPath.toString(); } + + @Override + public void writeExternal(ObjectOutput out) throws IOException { + out.writeUTF(metadata.toJson()); + out.writeUTF(finalPath.toString()); + out.writeInt(numRows); + out.writeLong(fileSize); + } + + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + metadata = LensResultSetMetadata.fromJson(in.readUTF()); + finalPath = new Path(in.readUTF()); + numRows = in.readInt(); + fileSize = in.readLong(); + } } http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-query-lib/src/main/java/org/apache/lens/lib/query/WrappedFileFormatter.java ---------------------------------------------------------------------- diff --git a/lens-query-lib/src/main/java/org/apache/lens/lib/query/WrappedFileFormatter.java b/lens-query-lib/src/main/java/org/apache/lens/lib/query/WrappedFileFormatter.java index e28c17b..5910709 100644 --- a/lens-query-lib/src/main/java/org/apache/lens/lib/query/WrappedFileFormatter.java +++ b/lens-query-lib/src/main/java/org/apache/lens/lib/query/WrappedFileFormatter.java @@ -19,6 +19,8 @@ package org.apache.lens.lib.query; import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import org.apache.lens.server.api.driver.LensResultSetMetadata; import org.apache.lens.server.api.query.QueryContext; @@ -137,4 +139,15 @@ public abstract class WrappedFileFormatter extends AbstractOutputFormatter { public String getEncoding() { return formatter.getEncoding(); } + + @Override + public void writeExternal(ObjectOutput out) throws IOException { + out.writeObject(formatter); + } + + @Override + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + formatter = (AbstractFileFormatter) in.readObject(); + metadata = formatter.getMetadata(); + } } http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-query-lib/src/test/java/org/apache/lens/lib/query/MockLensResultSetMetadata.java ---------------------------------------------------------------------- diff --git a/lens-query-lib/src/test/java/org/apache/lens/lib/query/MockLensResultSetMetadata.java b/lens-query-lib/src/test/java/org/apache/lens/lib/query/MockLensResultSetMetadata.java new file mode 100644 index 0000000..3b6c0e4 --- /dev/null +++ b/lens-query-lib/src/test/java/org/apache/lens/lib/query/MockLensResultSetMetadata.java @@ -0,0 +1,65 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.lens.lib.query; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.lens.server.api.driver.LensResultSetMetadata; + +import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hive.service.cli.ColumnDescriptor; + +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +public class MockLensResultSetMetadata extends LensResultSetMetadata { + List<ColumnDescriptor> columns; + + @Override + public List<ColumnDescriptor> getColumns() { + return columns; + } + + public static LensResultSetMetadata createMockedResultSet() { + List<ColumnDescriptor> columns = new ArrayList<ColumnDescriptor>(); + columns.add(new ColumnDescriptor(new FieldSchema("firstcol", "int", ""), 0)); + columns.add(new ColumnDescriptor(new FieldSchema("format(secondcol,2)", "string", ""), 1)); + columns.add(new ColumnDescriptor(new FieldSchema("thirdcol", "varchar(20)", ""), 2)); + columns.add(new ColumnDescriptor(new FieldSchema("fourthcol", "char(15)", ""), 3)); + columns.add(new ColumnDescriptor(new FieldSchema("fifthcol", "array<tinyint>", ""), 4)); + columns.add(new ColumnDescriptor(new FieldSchema("sixthcol", "struct<a:int,b:varchar(10)>", ""), 5)); + columns.add(new ColumnDescriptor(new FieldSchema("seventhcol", "map<int,char(10)>", ""), 6)); + return new MockLensResultSetMetadata(columns); + } + + public static LensResultSetMetadata createMockedResultSetWithoutComma() { + List<ColumnDescriptor> columns = new ArrayList<ColumnDescriptor>(); + columns.add(new ColumnDescriptor(new FieldSchema("firstcol", "int", ""), 0)); + columns.add(new ColumnDescriptor(new FieldSchema("secondcol", "string", ""), 1)); + columns.add(new ColumnDescriptor(new FieldSchema("thirdcol", "varchar(20)", ""), 2)); + columns.add(new ColumnDescriptor(new FieldSchema("fourthcol", "char(15)", ""), 3)); + columns.add(new ColumnDescriptor(new FieldSchema("fifthcol", "array<tinyint>", ""), 4)); + columns.add(new ColumnDescriptor(new FieldSchema("sixthcol", "struct<a:int,b:varchar(10)>", ""), 5)); + columns.add(new ColumnDescriptor(new FieldSchema("seventhcol", "map<int,char(10)>", ""), 6)); + return new MockLensResultSetMetadata(columns); + } +} http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-query-lib/src/test/java/org/apache/lens/lib/query/TestAbstractFileFormatter.java ---------------------------------------------------------------------- diff --git a/lens-query-lib/src/test/java/org/apache/lens/lib/query/TestAbstractFileFormatter.java b/lens-query-lib/src/test/java/org/apache/lens/lib/query/TestAbstractFileFormatter.java index 35d7a00..40e1cdc 100644 --- a/lens-query-lib/src/test/java/org/apache/lens/lib/query/TestAbstractFileFormatter.java +++ b/lens-query-lib/src/test/java/org/apache/lens/lib/query/TestAbstractFileFormatter.java @@ -19,8 +19,13 @@ package org.apache.lens.lib.query; import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStreamReader; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; @@ -37,10 +42,8 @@ import org.apache.lens.server.api.query.QueryContext; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.io.compress.CompressionCodec; import org.apache.hadoop.io.compress.CompressionCodecFactory; -import org.apache.hive.service.cli.ColumnDescriptor; import org.testng.Assert; import org.testng.annotations.AfterMethod; @@ -189,6 +192,39 @@ public abstract class TestAbstractFileFormatter { } /** + * Test formatter persistence + * + * @throws IOException Signals that an I/O exception has occurred. + */ + @Test + public void testFormatterPersistence() throws IOException, ClassNotFoundException { + Configuration conf = new Configuration(); + setConf(conf); + testFormatter(conf, "UTF8", LensConfConstants.RESULT_SET_PARENT_DIR_DEFAULT, ".csv", getMockedResultSet()); + + // Write formatter to stream + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + try { + new ObjectOutputStream(outputStream).writeObject(formatter); + } finally { + outputStream.close(); + } + // Create another formatter from the stream + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + WrappedFileFormatter newFormatter = createFormatter(); + try { + newFormatter=(WrappedFileFormatter)new ObjectInputStream(inputStream).readObject(); + } finally { + inputStream.close(); + } + + Assert.assertEquals(formatter.getFinalOutputPath(), newFormatter.getFinalOutputPath()); + Assert.assertEquals(formatter.getFileSize(), newFormatter.getFileSize()); + Assert.assertEquals(formatter.getNumRows(), newFormatter.getNumRows()); + Assert.assertEquals(formatter.getMetadata().toJson(), newFormatter.getMetadata().toJson()); + } + + /** * Creates the formatter. * * @return the wrapped file formatter @@ -265,6 +301,7 @@ public abstract class TestAbstractFileFormatter { Assert.assertEquals(finalPath, expectedFinalPath); Assert.assertTrue(fs.exists(finalPath)); } + /** * Test formatter. * @@ -356,39 +393,11 @@ public abstract class TestAbstractFileFormatter { } protected LensResultSetMetadata getMockedResultSet() { - return new LensResultSetMetadata() { - - @Override - public List<ColumnDescriptor> getColumns() { - List<ColumnDescriptor> columns = new ArrayList<ColumnDescriptor>(); - columns.add(new ColumnDescriptor(new FieldSchema("firstcol", "int", ""), 0)); - columns.add(new ColumnDescriptor(new FieldSchema("format(secondcol,2)", "string", ""), 1)); - columns.add(new ColumnDescriptor(new FieldSchema("thirdcol", "varchar(20)", ""), 2)); - columns.add(new ColumnDescriptor(new FieldSchema("fourthcol", "char(15)", ""), 3)); - columns.add(new ColumnDescriptor(new FieldSchema("fifthcol", "array<tinyint>", ""), 4)); - columns.add(new ColumnDescriptor(new FieldSchema("sixthcol", "struct<a:int,b:varchar(10)>", ""), 5)); - columns.add(new ColumnDescriptor(new FieldSchema("seventhcol", "map<int,char(10)>", ""), 6)); - return columns; - } - }; + return MockLensResultSetMetadata.createMockedResultSet(); } protected LensResultSetMetadata getMockedResultSetWithoutComma() { - return new LensResultSetMetadata() { - - @Override - public List<ColumnDescriptor> getColumns() { - List<ColumnDescriptor> columns = new ArrayList<ColumnDescriptor>(); - columns.add(new ColumnDescriptor(new FieldSchema("firstcol", "int", ""), 0)); - columns.add(new ColumnDescriptor(new FieldSchema("secondcol", "string", ""), 1)); - columns.add(new ColumnDescriptor(new FieldSchema("thirdcol", "varchar(20)", ""), 2)); - columns.add(new ColumnDescriptor(new FieldSchema("fourthcol", "char(15)", ""), 3)); - columns.add(new ColumnDescriptor(new FieldSchema("fifthcol", "array<tinyint>", ""), 4)); - columns.add(new ColumnDescriptor(new FieldSchema("sixthcol", "struct<a:int,b:varchar(10)>", ""), 5)); - columns.add(new ColumnDescriptor(new FieldSchema("seventhcol", "map<int,char(10)>", ""), 6)); - return columns; - } - }; + return MockLensResultSetMetadata.createMockedResultSetWithoutComma(); } /** http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSetMetadata.java ---------------------------------------------------------------------- diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSetMetadata.java b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSetMetadata.java index ef8aeed..da90e0a 100644 --- a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSetMetadata.java +++ b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensResultSetMetadata.java @@ -18,6 +18,7 @@ */ package org.apache.lens.server.api.driver; +import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -30,11 +31,51 @@ import org.apache.hadoop.hive.serde2.typeinfo.VarcharTypeInfo; import org.apache.hive.service.cli.ColumnDescriptor; import org.apache.hive.service.cli.TypeDescriptor; +import org.codehaus.jackson.*; +import org.codehaus.jackson.annotate.JsonTypeInfo; +import org.codehaus.jackson.map.*; +import org.codehaus.jackson.map.module.SimpleModule; + /** * The Class LensResultSetMetadata. */ +@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") public abstract class LensResultSetMetadata { + protected static final ObjectMapper MAPPER; + + /** + * Registering custom serializer + */ + static { + MAPPER = new ObjectMapper(); + SimpleModule module = new SimpleModule("HiveColumnModule", new Version(1, 0, 0, null)); + module.addSerializer(ColumnDescriptor.class, new JsonSerializer<ColumnDescriptor>() { + @Override + public void serialize(ColumnDescriptor columnDescriptor, JsonGenerator jsonGenerator, + SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + jsonGenerator.writeStartObject(); + jsonGenerator.writeStringField("name", columnDescriptor.getName()); + jsonGenerator.writeStringField("comment", columnDescriptor.getComment()); + jsonGenerator.writeNumberField("position", columnDescriptor.getOrdinalPosition()); + jsonGenerator.writeStringField("type", columnDescriptor.getType().getName()); + jsonGenerator.writeEndObject(); + } + }); + module.addDeserializer(ColumnDescriptor.class, new JsonDeserializer<ColumnDescriptor>() { + @Override + public ColumnDescriptor deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) + throws IOException { + ObjectCodec oc = jsonParser.getCodec(); + JsonNode node = oc.readTree(jsonParser); + org.apache.hive.service.cli.Type t = org.apache.hive.service.cli.Type.getType(node.get("type").asText()); + return new ColumnDescriptor(node.get("name").asText(), node.get("comment").asText(), new TypeDescriptor(t), + node.get("position").asInt()); + } + }); + MAPPER.registerModule(module); + } + public abstract List<ColumnDescriptor> getColumns(); /** @@ -79,4 +120,12 @@ public abstract class LensResultSetMetadata { } return typeDesc.getTypeName().toLowerCase(); } + + public static LensResultSetMetadata fromJson(String json) throws IOException { + return MAPPER.readValue(json, LensResultSetMetadata.class); + } + + public String toJson() throws IOException { + return MAPPER.writeValueAsString(this); + } } http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/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 bed79ac..3a5b887 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 @@ -145,7 +145,7 @@ public class QueryContext extends AbstractQueryContext { @Getter @Setter - private transient QueryOutputFormatter queryOutputFormatter; + private QueryOutputFormatter queryOutputFormatter; /** * The finished query persisted. http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryOutputFormatter.java ---------------------------------------------------------------------- diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryOutputFormatter.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryOutputFormatter.java index 0a6cc6b..a165fe9 100644 --- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryOutputFormatter.java +++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryOutputFormatter.java @@ -18,6 +18,7 @@ */ package org.apache.lens.server.api.query; +import java.io.Externalizable; import java.io.IOException; import org.apache.lens.server.api.driver.LensResultSetMetadata; @@ -28,7 +29,7 @@ import org.apache.lens.server.api.driver.LensResultSetMetadata; * This is an abstract interface, user should implement {@link InMemoryOutputFormatter} or * {@link PersistedOutputFormatter} for formatting the result. */ -public interface QueryOutputFormatter { +public interface QueryOutputFormatter extends Externalizable { /** * Initialize the formatter. http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java ---------------------------------------------------------------------- diff --git a/lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java b/lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java index 1e9a182..3f24343 100644 --- a/lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java +++ b/lens-server/src/main/java/org/apache/lens/server/query/LensPersistentResult.java @@ -32,8 +32,6 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.codehaus.jackson.map.ObjectMapper; - import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -86,10 +84,10 @@ public class LensPersistentResult extends PersistentResultSet { ctx.getQueryOutputFormatter().getFileSize(), conf); } - public LensPersistentResult(FinishedLensQuery query, Configuration conf, ObjectMapper mapper) throws + public LensPersistentResult(FinishedLensQuery query, Configuration conf) throws ClassNotFoundException, IOException { this(QueryHandle.fromString(query.getHandle()), - mapper.readValue(query.getMetadata(), (Class<LensResultSetMetadata>) Class.forName(query.getMetadataClass())), + LensResultSetMetadata.fromJson(query.getMetadata()), query.getResult(), query.getRows(), query.getFileSize(), conf); } http://git-wip-us.apache.org/repos/asf/lens/blob/5bae273e/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 3bc9a4a..ea19742 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 @@ -79,12 +79,7 @@ import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hive.service.cli.CLIService; -import org.apache.hive.service.cli.ColumnDescriptor; -import org.apache.hive.service.cli.TypeDescriptor; -import org.codehaus.jackson.*; -import org.codehaus.jackson.map.*; -import org.codehaus.jackson.map.module.SimpleModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -138,11 +133,6 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE public static final String NAME = "query"; /** - * The Constant MAPPER. - */ - private static final ObjectMapper MAPPER = new ObjectMapper(); - - /** * The accepted queries. */ private FairPriorityBlockingQueue<QueryContext> queuedQueries @@ -918,7 +908,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE Integer rows = set.size(); finishedQuery.setMetadataClass(metadata.getClass().getName()); finishedQuery.setResult(outputPath); - finishedQuery.setMetadata(MAPPER.writeValueAsString(metadata)); + finishedQuery.setMetadata(metadata.toJson()); finishedQuery.setRows(rows); finishedQuery.setFileSize(fileSize); } @@ -1063,31 +1053,6 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE } catch (Exception e) { log.warn("Unable to create finished query table, query purger will not purge queries", e); } - SimpleModule module = new SimpleModule("HiveColumnModule", new Version(1, 0, 0, null)); - module.addSerializer(ColumnDescriptor.class, new JsonSerializer<ColumnDescriptor>() { - @Override - public void serialize(ColumnDescriptor columnDescriptor, JsonGenerator jsonGenerator, - SerializerProvider serializerProvider) throws IOException, JsonProcessingException { - jsonGenerator.writeStartObject(); - jsonGenerator.writeStringField("name", columnDescriptor.getName()); - jsonGenerator.writeStringField("comment", columnDescriptor.getComment()); - jsonGenerator.writeNumberField("position", columnDescriptor.getOrdinalPosition()); - jsonGenerator.writeStringField("type", columnDescriptor.getType().getName()); - jsonGenerator.writeEndObject(); - } - }); - module.addDeserializer(ColumnDescriptor.class, new JsonDeserializer<ColumnDescriptor>() { - @Override - public ColumnDescriptor deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) - throws IOException, JsonProcessingException { - ObjectCodec oc = jsonParser.getCodec(); - JsonNode node = oc.readTree(jsonParser); - org.apache.hive.service.cli.Type t = org.apache.hive.service.cli.Type.getType(node.get("type").asText()); - return new ColumnDescriptor(node.get("name").asText(), node.get("comment").asText(), new TypeDescriptor(t), - node.get("position").asInt()); - } - }); - MAPPER.registerModule(module); } /* @@ -1423,7 +1388,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE throw new NotFoundException("InMemory Query result purged " + queryHandle); } try { - return new LensPersistentResult(query, conf, MAPPER); + return new LensPersistentResult(query, conf); } catch (Exception e) { throw new LensException(e); }
