This commit is contained in:
Redkale
2020-05-16 22:40:41 +08:00
parent 7633687665
commit 9f8e946ea3

View File

@@ -81,6 +81,17 @@ public final class Transport {
public final InetSocketAddress[] updateRemoteAddresses(final Collection<InetSocketAddress> addresses) {
final TransportNode[] oldNodes = this.transportNodes;
synchronized (this) {
boolean same = false;
if (this.transportNodes != null && addresses != null && this.transportNodes.length == addresses.size()) {
same = true;
for (TransportNode node : this.transportNodes) {
if (!addresses.contains(node.getAddress())) {
same = false;
break;
}
}
}
if (!same) {
List<TransportNode> list = new ArrayList<>();
if (addresses != null) {
for (InetSocketAddress addr : addresses) {
@@ -99,6 +110,7 @@ public final class Transport {
}
this.transportNodes = list.toArray(new TransportNode[list.size()]);
}
}
InetSocketAddress[] rs = new InetSocketAddress[oldNodes.length];
for (int i = 0; i < rs.length; i++) {
rs[i] = oldNodes[i].getAddress();