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

jackietien pushed a commit to branch NoDeviceBug
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 1bfcc3fea2a86d90cb7942b0e76f86e89edcbe37
Author: JackieTien97 <[email protected]>
AuthorDate: Thu Mar 11 20:33:21 2021 +0800

    fix bug
---
 .../db/engine/cache/TimeSeriesMetadataCache.java   | 31 ++++++++++++----------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
index d6ad1f4..580755d 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java
@@ -183,21 +183,24 @@ public class TimeSeriesMetadataCache {
           List<TimeseriesMetadata> timeSeriesMetadataList =
               reader.readTimeseriesMetadata(path, allSensors);
           // put TimeSeriesMetadata of all sensors used in this query into 
cache
-          lock.writeLock().lock();
-          try {
-            timeSeriesMetadataList.forEach(
-                metadata -> {
-                  TimeSeriesMetadataCacheKey k =
-                      new TimeSeriesMetadataCacheKey(
-                          key.filePath, key.device, 
metadata.getMeasurementId());
-                  if (!lruCache.containsKey(k)) {
-                    lruCache.put(k, metadata);
-                  }
-                });
-            timeseriesMetadata = lruCache.get(key);
-          } finally {
-            lock.writeLock().unlock();
+          if (timeSeriesMetadataList != null) {
+            lock.writeLock().lock();
+            try {
+              timeSeriesMetadataList.forEach(
+                  metadata -> {
+                    TimeSeriesMetadataCacheKey k =
+                        new TimeSeriesMetadataCacheKey(
+                            key.filePath, key.device, 
metadata.getMeasurementId());
+                    if (!lruCache.containsKey(k)) {
+                      lruCache.put(k, metadata);
+                    }
+                  });
+              timeseriesMetadata = lruCache.get(key);
+            } finally {
+              lock.writeLock().unlock();
+            }
           }
+
         }
       }
     }

Reply via email to