diff --git a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java index 55b8ebad0..1cc382141 100644 --- a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java +++ b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java @@ -23,7 +23,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Stream; import org.springframework.core.CollectionFactory; @@ -84,12 +83,14 @@ public class ResultProcessor { /** * Returns a new {@link ResultProcessor} with a new projection type obtained from the given {@link ParameterAccessor}. * - * @param accessor can be {@literal null}. + * @param accessor must not be {@literal null}. * @return */ - public ResultProcessor withDynamicProjection(Optional accessor) { + public ResultProcessor withDynamicProjection(ParameterAccessor accessor) { - return accessor.flatMap(ParameterAccessor::getDynamicProjection)// + Assert.notNull(accessor, "Parameter accessor must not be null!"); + + return accessor.getDynamicProjection()// .map(it -> new ResultProcessor(method, factory, it))// .orElse(this); } diff --git a/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java b/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java index dc23a3bed..daf8a02e8 100755 --- a/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java @@ -25,7 +25,6 @@ import rx.Single; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; @@ -144,12 +143,11 @@ public class ResultProcessorUnitTests { ParameterAccessor accessor = mock(ParameterAccessor.class); ResultProcessor factory = getProcessor("findOneDynamic", Class.class); - assertThat(factory.withDynamicProjection(Optional.empty())).isEqualTo(factory); - assertThat(factory.withDynamicProjection(Optional.of(accessor))).isEqualTo(factory); + assertThat(factory.withDynamicProjection(accessor)).isEqualTo(factory); doReturn(Optional.of(SampleProjection.class)).when(accessor).getDynamicProjection(); - ResultProcessor processor = factory.withDynamicProjection(Optional.of(accessor)); + ResultProcessor processor = factory.withDynamicProjection(accessor); assertThat(processor.getReturnedType().getReturnedType()).isEqualTo(SampleProjection.class); }