https://github.com/jurmous/etcd4j/blob/master/src/main/java/mousio/client/pro...
public T get() throws Exception {
if (!waitForPromiseSuccess()) {
return this.get(); //метод ничто не прегружает
}
if (response != null) {
return response;
} else {
...
}
}
protected boolean waitForPromiseSuccess() throws IOException, TimeoutException {
if (!promise.isDone() && !promise.isCancelled()) {
Promise<T> listeningPromise = this.promise;
listeningPromise.awaitUninterruptibly();
if (listeningPromise != this.promise) {
return false;
}
this.handlePromise(promise);
}
return true;
}
Поясните что здесь происходит, и зачем оно так? Или это просто песец сбежал из парижской палаты мер и весов и своими пушистыми лапками пишет код?