diff --git a/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java b/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java index ab223c3ecac2..8f0f63f374f4 100644 --- a/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java +++ b/client/src/main/java/org/apache/rocketmq/client/common/ThreadLocalIndex.java @@ -27,15 +27,10 @@ public int getAndIncrement() { Integer index = this.threadLocalIndex.get(); if (null == index) { index = Math.abs(random.nextInt()); - if (index < 0) - index = 0; this.threadLocalIndex.set(index); } index = Math.abs(index + 1); - if (index < 0) - index = 0; - this.threadLocalIndex.set(index); return index; } diff --git a/client/src/test/java/org/apache/rocketmq/client/common/ThreadLocalIndexTest.java b/client/src/test/java/org/apache/rocketmq/client/common/ThreadLocalIndexTest.java index 1be93ce0f3a1..6ff5dad2621c 100644 --- a/client/src/test/java/org/apache/rocketmq/client/common/ThreadLocalIndexTest.java +++ b/client/src/test/java/org/apache/rocketmq/client/common/ThreadLocalIndexTest.java @@ -29,4 +29,11 @@ public void testGetAndIncrement() throws Exception { assertThat(localIndex.getAndIncrement()).isEqualTo(initialVal + 1); } + @Test + public void testGetAndIncrement2() throws Exception { + ThreadLocalIndex localIndex = new ThreadLocalIndex(); + int initialVal = localIndex.getAndIncrement(); + assertThat(initialVal >= 0); + } + } \ No newline at end of file