From 442d806161169e11f1c06f28ac7db304eff5c5b1 Mon Sep 17 00:00:00 2001 From: Redkale Date: Thu, 5 Jan 2023 22:31:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96ClientAddress?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/redkale/net/client/ClientAddress.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/redkale/net/client/ClientAddress.java b/src/main/java/org/redkale/net/client/ClientAddress.java index 0cb7f46b5..da7cdf120 100644 --- a/src/main/java/org/redkale/net/client/ClientAddress.java +++ b/src/main/java/org/redkale/net/client/ClientAddress.java @@ -54,7 +54,8 @@ public class ClientAddress implements java.io.Serializable { public CompletableFuture createClient(final boolean tcp, final AsyncGroup group, int readTimeoutSeconds, int writeTimeoutSeconds) { SocketAddress addr = address; if (addr == null) { - if (this.addresses == null) { + SocketAddress[] addrs = this.addresses; + if (addrs == null) { synchronized (this) { if (this.addresses == null) { int size = 0; @@ -70,11 +71,11 @@ public class ClientAddress implements java.io.Serializable { newAddrs[++index] = w.getAddress(); } } + addrs = newAddrs; this.addresses = newAddrs; } } } - SocketAddress[] addrs = addresses; addr = addrs[ThreadLocalRandom.current().nextInt(addrs.length)]; } return group.createClient(tcp, addr, readTimeoutSeconds, writeTimeoutSeconds);