From fcc3ee22dbad60b9b52da552d2e74fae43025ee7 Mon Sep 17 00:00:00 2001 From: artboy <80608452+itxaiohanglover@users.noreply.github.com> Date: Sat, 20 Jun 2026 01:30:24 +0800 Subject: [PATCH] [ISSUE #10421] Fix Timer message RocksDB cache key using ByteBuffer --- .../rocketmq/store/rocksdb/MessageRocksDBStorage.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/store/src/main/java/org/apache/rocketmq/store/rocksdb/MessageRocksDBStorage.java b/store/src/main/java/org/apache/rocketmq/store/rocksdb/MessageRocksDBStorage.java index 8d32998bdce..0ad72b4891b 100644 --- a/store/src/main/java/org/apache/rocketmq/store/rocksdb/MessageRocksDBStorage.java +++ b/store/src/main/java/org/apache/rocketmq/store/rocksdb/MessageRocksDBStorage.java @@ -84,7 +84,7 @@ public class MessageRocksDBStorage extends AbstractRocksDBStorage { private volatile ColumnFamilyHandle transCFHandle; private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - private static final Cache DELETE_KEY_CACHE_FOR_TIMER = CacheBuilder.newBuilder() + private static final Cache DELETE_KEY_CACHE_FOR_TIMER = CacheBuilder.newBuilder() .maximumSize(10000) .expireAfterWrite(60, TimeUnit.MINUTES) .build(); @@ -354,9 +354,9 @@ public void writeRecordsForTimer(byte[] columnFamily, List r writeBatch.put(cfHandle, keyBytes, valueBytes); } else if (record.getActionFlag() == TIMER_ROCKSDB_DELETE) { writeBatch.delete(cfHandle, keyBytes); - DELETE_KEY_CACHE_FOR_TIMER.put(keyBytes, DELETE_VAL_FLAG); + DELETE_KEY_CACHE_FOR_TIMER.put(ByteBuffer.wrap(keyBytes), DELETE_VAL_FLAG); } else if (record.getActionFlag() == TIMER_ROCKSDB_UPDATE) { - byte[] deleteByte = DELETE_KEY_CACHE_FOR_TIMER.getIfPresent(keyBytes); + byte[] deleteByte = DELETE_KEY_CACHE_FOR_TIMER.getIfPresent(ByteBuffer.wrap(keyBytes)); if (null == deleteByte) { writeBatch.put(cfHandle, keyBytes, valueBytes); }