diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactoryWithBalance.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactoryWithBalance.java index a00570e9d3053b8e74395cae3a997b78a6009d76..3397f9729b04e590318e546aece06a0fb8996b60 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactoryWithBalance.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/sender/DataSenderFactoryWithBalance.java @@ -140,8 +140,16 @@ public class DataSenderFactoryWithBalance { if (usingDataSender.size() >= maxKeepConnectingSenderSize) { DataSender toBeSwitchSender; DataSender tmpSender; - int toBeSwitchIndex = ThreadLocalRandom.current() - .nextInt(0, usingDataSender.size() - 1); + + int toBeSwitchIndex; + + if (usingDataSender.size() - 1 > 0) { + toBeSwitchIndex = ThreadLocalRandom.current() + .nextInt(0, usingDataSender.size() - 1); + } else { + toBeSwitchIndex = 0; + } + toBeSwitchSender = usingDataSender.get(toBeSwitchIndex); tmpSender = findReadySender(); if (tmpSender != null) {