From d5e7dfdacd7e9e4a60bab4f22a408f5dee98582e Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 4 Jul 2018 23:09:36 +0200 Subject: [PATCH] DATAJPA-1370 - Avoid premature String concatenation in SimpleJpaQuery. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SimpleJpaQuery now avoids potentially unnecessary String.format(…) invocations for actually valid queries and only performs them in case of an actual verification failure. --- .../data/jpa/repository/query/SimpleJpaQuery.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java b/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java index 72a7787f2..4f21cd558 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/SimpleJpaQuery.java @@ -59,7 +59,7 @@ final class SimpleJpaQuery extends AbstractStringBasedJpaQuery { super(method, em, queryString, evaluationContextProvider, parser); - validateQuery(getQuery().getQueryString(), String.format("Validation failed for query for method %s!", method)); + validateQuery(getQuery().getQueryString(), "Validation failed for query for method %s!", method); if (method.isPageQuery()) { validateQuery(getCountQuery().getQueryString(), @@ -73,7 +73,7 @@ final class SimpleJpaQuery extends AbstractStringBasedJpaQuery { * @param query * @param errorMessage */ - private final void validateQuery(String query, String errorMessage) { + private void validateQuery(String query, String errorMessage, Object... arguments) { if (getQueryMethod().isProcedureQuery()) { return; @@ -89,7 +89,7 @@ final class SimpleJpaQuery extends AbstractStringBasedJpaQuery { // Needed as there's ambiguities in how an invalid query string shall be expressed by the persistence provider // http://java.net/projects/jpa-spec/lists/jsr338-experts/archive/2012-07/message/17 - throw new IllegalArgumentException(errorMessage, e); + throw new IllegalArgumentException(String.format(errorMessage, arguments), e); } finally {