From 612852d3ef2cde64f5f11a2dd7a1eaf056d06c29 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 186837c7f..b32ba660e 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 @@ -60,7 +60,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(), @@ -74,7 +74,7 @@ final class SimpleJpaQuery extends AbstractStringBasedJpaQuery { * @param query * @param errorMessage */ - private void validateQuery(String query, String errorMessage) { + private void validateQuery(String query, String errorMessage, Object... arguments) { if (getQueryMethod().isProcedureQuery()) { return; @@ -90,7 +90,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 {