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

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


The following commit(s) were added to refs/heads/cem by this push:
     new 2126eb69574 fix
2126eb69574 is described below

commit 2126eb695742be43aa076fec9725a18701339cee
Author: Caideyipi <[email protected]>
AuthorDate: Fri Nov 28 18:27:32 2025 +0800

    fix
---
 .../cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java       | 6 ++++++
 .../analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java  | 8 +++-----
 .../analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java  | 3 +++
 3 files changed, 12 insertions(+), 5 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
index 54c53a15d50..ea7f502a90b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/CacheEntryGroupImpl.java
@@ -72,6 +72,12 @@ public class CacheEntryGroupImpl<FK, SK, V, T extends 
ICacheEntry<SK, V>>
     return cacheEntryMap.compute(secondKey, computation.apply(memory));
   }
 
+  @Override
+  public T computeCacheEntryIfPresent(
+      final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>> 
computation) {
+    return cacheEntryMap.computeIfPresent(secondKey, 
computation.apply(memory));
+  }
+
   @Override
   public long removeCacheEntry(final SK secondKey) {
     final T result = cacheEntryMap.remove(secondKey);
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
index 86d10422249..79fbd595e1b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/DualKeyCacheImpl.java
@@ -153,13 +153,11 @@ class DualKeyCacheImpl<FK, SK, V, T extends 
ICacheEntry<SK, V>>
                 if (!secondKeyChecker.test(entry.getKey())) {
                   return;
                 }
-                entryGroup.computeCacheEntry(
+                entryGroup.computeCacheEntryIfPresent(
                     entry.getKey(),
                     memory ->
                         (secondKey, cacheEntry) -> {
-                          if (Objects.nonNull(cacheEntry)) {
-                            
memory.getAndAdd(updater.applyAsInt(cacheEntry.getValue()));
-                          }
+                          
memory.getAndAdd(updater.applyAsInt(cacheEntry.getValue()));
                           return cacheEntry;
                         });
               });
@@ -185,7 +183,7 @@ class DualKeyCacheImpl<FK, SK, V, T extends ICacheEntry<SK, 
V>>
                   if (!secondKeyChecker.test(entry.getKey())) {
                     return;
                   }
-                  entryGroup.computeCacheEntry(
+                  entryGroup.computeCacheEntryIfPresent(
                       entry.getKey(),
                       memory ->
                           (secondKey, cacheEntry) -> {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
index d1f8ab9923e..0791fadc325 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/analyze/cache/schema/dualkeycache/impl/ICacheEntryGroup.java
@@ -45,6 +45,9 @@ interface ICacheEntryGroup<FK, SK, V, T extends 
ICacheEntry<SK, V>> {
   T computeCacheEntry(
       final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>> 
computation);
 
+  T computeCacheEntryIfPresent(
+      final SK secondKey, final Function<AtomicLong, BiFunction<SK, T, T>> 
computation);
+
   long removeCacheEntry(final SK secondKey);
 
   boolean isEmpty();

Reply via email to