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

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

commit dffddbfed3c4a8627ec15b38a658d217719a6e55
Author: JackieTien97 <[email protected]>
AuthorDate: Wed Dec 23 12:54:07 2020 +0800

    fix bug
---
 .../apache/iotdb/db/engine/cache/TimeSeriesMetadataCache.java  | 10 +++++++---
 1 file changed, 7 insertions(+), 3 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 05ecabd..3e00ea0 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
@@ -165,9 +165,13 @@ public class TimeSeriesMetadataCache {
           // put TimeSeriesMetadata of all sensors used in this query into 
cache
           lock.writeLock().lock();
           try {
-            timeSeriesMetadataList.forEach(metadata ->
-                lruCache.put(new TimeSeriesMetadataCacheKey(key.filePath, 
key.device,
-                    metadata.getMeasurementId()), metadata));
+            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