From 89d9049b2b8d0e04e35056fec2a89567dca202d0 Mon Sep 17 00:00:00 2001 From: wangzhenfei Date: Wed, 19 Sep 2018 15:30:58 +0800 Subject: [PATCH] Prevent generation negative numbers to produce null pointer exception --- .../masterslave/RoundRobinMasterSlaveLoadBalanceAlgorithm.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sharding-core/src/main/java/io/shardingsphere/core/api/algorithm/masterslave/RoundRobinMasterSlaveLoadBalanceAlgorithm.java b/sharding-core/src/main/java/io/shardingsphere/core/api/algorithm/masterslave/RoundRobinMasterSlaveLoadBalanceAlgorithm.java index 955c8c71b0316..fe7effb48b009 100644 --- a/sharding-core/src/main/java/io/shardingsphere/core/api/algorithm/masterslave/RoundRobinMasterSlaveLoadBalanceAlgorithm.java +++ b/sharding-core/src/main/java/io/shardingsphere/core/api/algorithm/masterslave/RoundRobinMasterSlaveLoadBalanceAlgorithm.java @@ -35,6 +35,6 @@ public String getDataSource(final String name, final String masterDataSourceName AtomicInteger count = COUNT_MAP.containsKey(name) ? COUNT_MAP.get(name) : new AtomicInteger(0); COUNT_MAP.putIfAbsent(name, count); count.compareAndSet(slaveDataSourceNames.size(), 0); - return slaveDataSourceNames.get(count.getAndIncrement() % slaveDataSourceNames.size()); + return slaveDataSourceNames.get(Math.abs(count.getAndIncrement()) % slaveDataSourceNames.size()); } }