diff --git a/broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerRocksdbStore.java b/broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerRocksdbStore.java index dc68f9d9fe5..3e2fe8a36fe 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerRocksdbStore.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/pop/PopConsumerRocksdbStore.java @@ -147,9 +147,11 @@ public List scanExpiredRecords(long lower, long upper, int ma // configure prefix indexing to improve the performance of scans. // However, in the current implementation, this is not the bottleneck. List consumerRecordList = new ArrayList<>(); - try (ReadOptions scanOptions = new ReadOptions() - .setIterateLowerBound(new Slice(ByteBuffer.allocate(Long.BYTES).putLong(lower).array())) - .setIterateUpperBound(new Slice(ByteBuffer.allocate(Long.BYTES).putLong(upper).array())); + try (Slice lowerBound = new Slice(ByteBuffer.allocate(Long.BYTES).putLong(lower).array()); + Slice upperBound = new Slice(ByteBuffer.allocate(Long.BYTES).putLong(upper).array()); + ReadOptions scanOptions = new ReadOptions() + .setIterateLowerBound(lowerBound) + .setIterateUpperBound(upperBound); RocksIterator iterator = db.newIterator(this.columnFamilyHandle, scanOptions)) { iterator.seek(ByteBuffer.allocate(Long.BYTES).putLong(lower).array()); while (iterator.isValid() && consumerRecordList.size() < maxCount) {