This is the ConsulIpFinder (mostly)
```
@Override
public Collection<InetSocketAddress> getRegisteredAddresses() throws
IgniteSpiException {
List<InetSocketAddress> remoteAddresses = getAddressesFromConsul();
Collection<InetSocketAddress> addresses =
mergeRemoteAndLocalAddresses(remoteAddresses);
return addresses;
}
@Override
public void registerAddresses(Collection<InetSocketAddress> addrs)
throws IgniteSpiException {
locallyRegisteredAddresses.addAll(addrs);
}
@Override
public void unregisterAddresses(Collection<InetSocketAddress> addrs)
throws IgniteSpiException {
locallyRegisteredAddresses.removeAll(addrs);
}
private Collection<InetSocketAddress>
mergeRemoteAndLocalAddresses(List<InetSocketAddress> remoteAddresses) {
Set<InetSocketAddress> addresses = new HashSet<>();
if (remoteAddresses != null) {
addresses.addAll(remoteAddresses);
}
addresses.addAll(locallyRegisteredAddresses);
return remoteAddresses;
}
private List<InetSocketAddress> getAddressesFromConsul() {
try {
HttpUrl.Builder urlBuilder =
HttpUrl.parse(consulUrl).newBuilder();
urlBuilder.addQueryParameter("passing", null);
String url = urlBuilder.build().toString();
Request request = new Request.Builder().url(url).build();
Response response = okHttpClient.newCall(request).execute();
if (!response.isSuccessful()) {
throw new IOException("event=errorResponseCodeReceived,
response=" + response);
}
String responseData = response.body().string();
JsonNode root = objectMapper.readTree(responseData);
return processConsulJson(root);
} catch (IOException ee) {
log.error("event=ErrorReadingFromConsul, consulUrl={}",
consulUrl, ee);
return Collections.emptyList();
}
}
```
--
View this message in context:
http://apache-ignite-users.70518.x6.nabble.com/Race-Condition-at-Grid-Startup-tp13038p13046.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.