diff --git a/pulsar-discovery-service/src/main/java/com/yahoo/pulsar/discovery/service/web/DiscoveryServiceServlet.java b/pulsar-discovery-service/src/main/java/com/yahoo/pulsar/discovery/service/web/DiscoveryServiceServlet.java index 89031a1ffbaf694e6917c777915557497372a22c..7352ebeb9fa72e7551e40a9f9ad2c57a8817ad5a 100644 --- a/pulsar-discovery-service/src/main/java/com/yahoo/pulsar/discovery/service/web/DiscoveryServiceServlet.java +++ b/pulsar-discovery-service/src/main/java/com/yahoo/pulsar/discovery/service/web/DiscoveryServiceServlet.java @@ -15,6 +15,8 @@ */ package com.yahoo.pulsar.discovery.service.web; +import static org.apache.bookkeeper.util.MathUtils.signSafeMod; + import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -151,7 +153,7 @@ public class DiscoveryServiceServlet extends HttpServlet { throw new RestException(Status.SERVICE_UNAVAILABLE, "No active broker is available"); } else { int brokersCount = availableBrokers.size(); - int nextIdx = Math.abs(counter.getAndIncrement()) % brokersCount; + int nextIdx = signSafeMod(counter.getAndIncrement(), brokersCount); return availableBrokers.get(nextIdx); } }