This is an automated email from the ASF dual-hosted git repository. pascalschumacher pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 380cc95cfa541d2502bd748e163a6bbaecc14b92 Author: PascalSchumacher <pascalschumac...@gmx.net> AuthorDate: Wed Feb 3 20:32:44 2021 +0100 ExpressionClause#initPredicate: Fix race condition in double-checked locking object initialization --- .../src/main/java/org/apache/camel/builder/ExpressionClause.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java index 1e002ef..6a2609d 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClause.java @@ -1004,12 +1004,14 @@ public class ExpressionClause<T> implements Expression, Predicate { synchronized (this) { if (pred == null) { Expression newExpression = getExpressionValue(); + Predicate newPredicate; if (newExpression == null) { - pred = delegate.getPredicateType().createPredicate(context); + newPredicate = delegate.getPredicateType().createPredicate(context); } else { - pred = ExpressionToPredicateAdapter.toPredicate(newExpression); + newPredicate = ExpressionToPredicateAdapter.toPredicate(newExpression); } - pred.initPredicate(context); + newPredicate.initPredicate(context); + pred = newPredicate; } } }