diff --git a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreFile.java b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreFile.java index 8fd4b2961b9..d94a3b10e9e 100644 --- a/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreFile.java +++ b/tieredstore/src/main/java/org/apache/rocketmq/tieredstore/index/IndexStoreFile.java @@ -114,7 +114,7 @@ public IndexStoreFile(MessageStoreConfig storeConfig, long timestamp) throws IOE this.fileChannel = this.mappedFile.getFileChannel(); this.beginTimestamp.set(timestamp); - this.endTimestamp.set(byteBuffer.getLong(INDEX_BEGIN_TIME_STAMP)); + this.endTimestamp.set(byteBuffer.getLong(INDEX_END_TIME_STAMP)); this.hashSlotCount.set(byteBuffer.getInt(INDEX_SLOT_COUNT)); this.indexItemCount.set(byteBuffer.getInt(INDEX_ITEM_INDEX)); this.flushNewMetadata(byteBuffer, indexItemMaxCount == this.indexItemCount.get() + 1); diff --git a/tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreFileTest.java b/tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreFileTest.java index dbad2d1abad..60ebfc2a0be 100644 --- a/tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreFileTest.java +++ b/tieredstore/src/test/java/org/apache/rocketmq/tieredstore/index/IndexStoreFileTest.java @@ -229,6 +229,21 @@ public void recoverFileTest() throws IOException { Assert.assertEquals(indexCount, indexStoreFile.getIndexItemCount()); } + @Test + public void recoverEndTimestampTest() throws IOException { + long beginTimestamp = indexStoreFile.getTimestamp(); + long endTimestamp = beginTimestamp + 10000L; + Assert.assertEquals(AppendResult.SUCCESS, indexStoreFile.putKey( + TOPIC_NAME, TOPIC_ID, QUEUE_ID, KEY_SET, MESSAGE_OFFSET, MESSAGE_SIZE, endTimestamp)); + Assert.assertEquals(endTimestamp, indexStoreFile.getEndTimestamp()); + + indexStoreFile.shutdown(); + indexStoreFile = new IndexStoreFile(storeConfig, beginTimestamp); + + Assert.assertEquals(beginTimestamp, indexStoreFile.getTimestamp()); + Assert.assertEquals(endTimestamp, indexStoreFile.getEndTimestamp()); + } + @Test public void doCompactionTest() { long timestamp = indexStoreFile.getTimestamp();