From 6ab313301d2c0c2826debe064c383a91e241310f Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 10 Feb 2025 11:40:45 +0100 Subject: [PATCH] Fix improper null/emptiness check. See #3170 --- .../query/ValueExpressionQueryRewriter.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java b/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java index 1df2162836..ba347062b9 100644 --- a/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java +++ b/src/main/java/org/springframework/data/repository/query/ValueExpressionQueryRewriter.java @@ -303,12 +303,35 @@ public boolean isQuoted(int index) { return quotations.isQuoted(index); } + /** + * @param name + * @return + * @since 4.0 + */ + public boolean hasExpression(String name) { + return expressions.get(name) != null; + } + + @Nullable public ValueExpression getParameter(String name) { + return expressions.get(name); + } + + /** + * Returns the required {@link ValueExpression} for the given name or throws an {@link IllegalArgumentException} if + * the parameter is not present. + * + * @param name + * @return + * @throws IllegalArgumentException if the parameter is not present. + * @since 4.0 + */ + public ValueExpression getRequiredParameter(String name) { - ValueExpression valueExpression = expressions.get(name); + ValueExpression valueExpression = getParameter(name); if (valueExpression == null) { - throw new IllegalArgumentException("No ValueExpression with name '%s' found in query.".formatted(name)); + throw new IllegalArgumentException("No ValueExpression with name '%s' found in query".formatted(name)); } return valueExpression;