From 0afb44445831c576c51b7ef95f58fafeb5a794ff Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Mon, 14 Dec 2015 16:03:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=BD=93=E5=8F=AA=E6=9C=89?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=8F=AF=E4=BB=A5=E5=88=87=E6=8D=A2=E7=9A=84?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sender/DataSenderFactoryWithBalance.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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 a00570e9d..3397f9729 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) {