This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 2eca431  [pulsar-client-api] Fix Unavailable Hash Range Condition 
(#9041)
2eca431 is described below

commit 2eca431fafb576e33171bd5f2be1306213ba2e51
Author: k2la <[email protected]>
AuthorDate: Thu Dec 24 16:02:05 2020 +0900

    [pulsar-client-api] Fix Unavailable Hash Range Condition (#9041)
    
    ### Motivation
    
https://github.com/apache/pulsar/blob/3b2c8526a96fc90e948dbeb510e8400a628c749a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java#L110-L112
    
    When range is [0, 65536], the above condition is false.
    
    ### Modification
    Change from `range1.getEnd() > DEFAULT_HASH_RANGE_SIZE` to `range1.getEnd() 
>= DEFAULT_HASH_RANGE_SIZE`.
    
    (cherry picked from commit 48779bd78632c4fee3ce54f3914333501fb3ff2f)
---
 .../org/apache/pulsar/client/api/KeySharedSubscriptionTest.java     | 6 +++---
 .../src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
index 9d914e1..50011d4 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
@@ -175,7 +175,7 @@ public class KeySharedSubscriptionTest extends 
ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, 
KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
@@ -296,7 +296,7 @@ public class KeySharedSubscriptionTest extends 
ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, 
KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
@@ -362,7 +362,7 @@ public class KeySharedSubscriptionTest extends 
ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, 
KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, 
KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
diff --git 
a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
 
b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
index b9f0694..92ff3d2 100644
--- 
a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
+++ 
b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
@@ -107,7 +107,7 @@ public abstract class KeySharedPolicy {
             }
             for (int i = 0; i < ranges.size(); i++) {
                 Range range1 = ranges.get(i);
-                if (range1.getStart() < 0 || range1.getEnd() > 
DEFAULT_HASH_RANGE_SIZE) {
+                if (range1.getStart() < 0 || range1.getEnd() >= 
DEFAULT_HASH_RANGE_SIZE) {
                     throw new IllegalArgumentException("Ranges must be [0, 
65535] but provided range is " + range1);
                 }
                 for (int j = 0; j < ranges.size(); j++) {

Reply via email to