From 295424feb2e8b8caaa2470ee8468eb77ad3a4ddc Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 24 Jul 2013 09:56:22 +0200 Subject: [PATCH] DATAJPA-373 - Fixed potential NullPointerException in StringQuery. --- .../data/jpa/repository/query/StringQuery.java | 4 ++-- .../data/jpa/repository/query/StringQueryUnitTests.java | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java b/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java index 1446b570c..d6da8a2d8 100644 --- a/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java +++ b/src/main/java/org/springframework/data/jpa/repository/query/StringQuery.java @@ -272,8 +272,8 @@ class StringQuery { * @param position * @return */ - public boolean hasPosition(int position) { - return this.name == null && this.position == position; + public boolean hasPosition(Integer position) { + return position != null && this.name == null && this.position == position; } /** diff --git a/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java b/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java index fc31b0055..3c7b36782 100644 --- a/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java +++ b/src/test/java/org/springframework/data/jpa/repository/query/StringQueryUnitTests.java @@ -90,6 +90,14 @@ public class StringQueryUnitTests { assertThat(binding.getType(), is(Type.ENDING_WITH)); } + /** + * @see DATAJPA-373 + */ + @Test + public void handlesMultipleNamedLikeBindingsCorrectly() { + new StringQuery("select u from User u where u.firstname like %:firstname or foo like :bar"); + } + @Test(expected = IllegalArgumentException.class) public void rejectsDifferentBindingsForRepeatedParameter() { new StringQuery("select u from User u where u.firstname like %?1 and u.lastname like ?1%");