diff --git a/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java b/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java index 13f320492..3fbdebac5 100644 --- a/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java +++ b/src/main/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPath.java @@ -144,7 +144,7 @@ class DefaultPersistentPropertyPath
> implements */ @Nullable public P getLeafProperty() { - return properties.get(properties.size() - 1); + return properties.isEmpty() ? null : properties.get(properties.size() - 1); } /* @@ -153,7 +153,7 @@ class DefaultPersistentPropertyPath
> implements */ @Nullable public P getBaseProperty() { - return properties.get(0); + return properties.isEmpty() ? null : properties.get(0); } /* diff --git a/src/test/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPathUnitTests.java b/src/test/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPathUnitTests.java index aa5570053..1ffc4a8d7 100755 --- a/src/test/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPathUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/context/DefaultPersistentPropertyPathUnitTests.java @@ -138,4 +138,20 @@ public class DefaultPersistentPropertyPathUnitTests
"")).isNull(); } + + @Test // DATACMNS-1466 + public void returnsNullForLeafPropertyOnEmptyPath() { + + PersistentPropertyPath
path = new DefaultPersistentPropertyPath
(Collections.emptyList()); + + assertThat(path.getLeafProperty()).isNull(); + } + + @Test // DATACMNS-1466 + public void returnsNullForBasePropertyOnEmptyPath() { + + PersistentPropertyPath
path = new DefaultPersistentPropertyPath
(Collections.emptyList()); + + assertThat(path.getBaseProperty()).isNull(); + } }