diff --git a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreService.java b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreService.java index 75c61dcb382..7fe645da0f6 100644 --- a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreService.java +++ b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreService.java @@ -226,13 +226,15 @@ public AppendResult putKey( public CompletableFuture> queryAsync( String topic, String key, int maxCount, long beginTime, long endTime) { + if (beginTime > endTime) { + return CompletableFuture.completedFuture(new ArrayList<>()); + } + CompletableFuture> future = new CompletableFuture<>(); try { readWriteLock.readLock().lock(); - long firstFileTimeStamp = this.timeStoreTable.lowerKey(beginTime) == null ? - this.timeStoreTable.firstKey() : this.timeStoreTable.lowerKey(beginTime); ConcurrentNavigableMap pendingMap = - this.timeStoreTable.subMap(firstFileTimeStamp, true, endTime, true); + this.timeStoreTable.subMap(beginTime, true, endTime, true); List> futureList = new ArrayList<>(pendingMap.size()); ConcurrentHashMap result = new ConcurrentHashMap<>(); @@ -260,6 +262,8 @@ public CompletableFuture> queryAsync( } }); } catch (Exception e) { + log.error("IndexStoreService#queryAsync, topicId={}, key={}, maxCount={}, timestamp={}-{}", + topic, key, maxCount, beginTime, endTime, e); future.completeExceptionally(e); } finally { readWriteLock.readLock().unlock();