From 858e814816b2aaf49c003a4a5b1283637fa877a5 Mon Sep 17 00:00:00 2001 From: David Turner Date: Thu, 13 Mar 2025 09:43:38 +0000 Subject: [PATCH] Fix stack trace in `ActionListener#assertOnce` (#124672) In #112380 we changed this `assert` to yield a `String` on failure rather than the original `ElasticsearchException`, which means we don't see the original completion's stack trace any more. This commit reinstates the lost stack trace. --- .../main/java/org/elasticsearch/action/ActionListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/action/ActionListener.java b/server/src/main/java/org/elasticsearch/action/ActionListener.java index a158669d936fe..5b577eebcf6b0 100644 --- a/server/src/main/java/org/elasticsearch/action/ActionListener.java +++ b/server/src/main/java/org/elasticsearch/action/ActionListener.java @@ -390,7 +390,9 @@ static ActionListener assertOnce(ActionListener d private void assertFirstRun() { var previousRun = firstCompletion.compareAndExchange(null, new ElasticsearchException("executed already")); - assert previousRun == null : "[" + delegate + "] " + previousRun; // reports the stack traces of both completions + assert previousRun == null + // reports the stack traces of both completions + : new AssertionError("[" + delegate + "]", previousRun); } @Override