This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 917fd5f  Fix Null pointer bug in Last with empty unseq files (#1165)
917fd5f is described below

commit 917fd5f57701100ebf2bab2989d3e79501065c72
Author: wshao08 <[email protected]>
AuthorDate: Thu May 7 16:44:08 2020 +0800

    Fix Null pointer bug in Last with empty unseq files (#1165)
---
 .../iotdb/db/query/executor/LastQueryExecutor.java      | 17 ++++++++++-------
 .../org/apache/iotdb/db/integration/IoTDBLastIT.java    |  2 ++
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
 
b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
index 746cc65..0caf3aa 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/query/executor/LastQueryExecutor.java
@@ -163,13 +163,16 @@ public class LastQueryExecutor {
       }
       TimeseriesMetadata timeseriesMetadata =
           FileLoaderUtils.loadTimeSeriesMetadata(resource, seriesPath, 
context, null, sensors);
-      for (ChunkMetadata chunkMetaData : 
timeseriesMetadata.loadChunkMetadataList()) {
-        if (chunkMetaData.getEndTime() == resultPair.getTimestamp()
-            && chunkMetaData.getVersion() > version) {
-          Statistics chunkStatistics = chunkMetaData.getStatistics();
-          resultPair = constructLastPair(
-                  chunkStatistics.getEndTime(), 
chunkStatistics.getLastValue(), tsDataType);
-          version = chunkMetaData.getVersion();
+      if (timeseriesMetadata != null) {
+        for (ChunkMetadata chunkMetaData : 
timeseriesMetadata.loadChunkMetadataList()) {
+          if (chunkMetaData.getEndTime() == resultPair.getTimestamp()
+              && chunkMetaData.getVersion() > version) {
+            Statistics chunkStatistics = chunkMetaData.getStatistics();
+            resultPair =
+                constructLastPair(
+                    chunkStatistics.getEndTime(), 
chunkStatistics.getLastValue(), tsDataType);
+            version = chunkMetaData.getVersion();
+          }
         }
       }
     }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java 
b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java
index 490c5af..7093afd 100644
--- a/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java
+++ b/server/src/test/java/org/apache/iotdb/db/integration/IoTDBLastIT.java
@@ -247,6 +247,8 @@ public class IoTDBLastIT {
 
       statement.execute("INSERT INTO root.ln.wf01.wt03(timestamp,status, id) 
values(500, false, 9)");
       statement.execute("flush");
+      statement.execute("INSERT INTO root.ln.wf01.wt03(timestamp,status, id) 
values(400, false, 11)");
+      statement.execute("flush");
       boolean hasResultSet = statement.execute(
           "select last temperature from root.ln.wf01.wt03");
 

Reply via email to