From fef0d1615599f1b0e5cb269658b5df52d2fd674e Mon Sep 17 00:00:00 2001 From: Thilo-Alexander Ginkel Date: Mon, 13 Feb 2023 18:50:33 +0100 Subject: [PATCH] Re-evaluate predicate in FnCondition.whenReadyIf as the predicate may have changed while awaiting the condition (#502) --- .../clients/elasticsearch/_helpers/bulk/FnCondition.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/_helpers/bulk/FnCondition.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/_helpers/bulk/FnCondition.java index f37052677..4ea534fb4 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/_helpers/bulk/FnCondition.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/_helpers/bulk/FnCondition.java @@ -81,6 +81,11 @@ public T whenReadyIf(BooleanSupplier canRun, Supplier fn) { } condition.awaitUninterruptibly(); } + + if (canRun != null && !canRun.getAsBoolean()) { + return null; + } + return fn.get(); } finally { lock.unlock();