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(); + } } + } } }
