From e1761f6c8c1f1189144427785b590823134d1cf4 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 9 Jun 2017 21:24:08 +0200 Subject: [PATCH] DATACMNS-1087 - Fixed Vavr Option creation from present value. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now reflectively invoke the static method Option.of(…), while we previously tried to invoke an instance method on the parameter value. --- .../data/repository/util/QueryExecutionConverters.java | 2 +- .../util/QueryExecutionConvertersUnitTests.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java index 4cb24fdf9..5dcb0f054 100644 --- a/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java +++ b/src/main/java/org/springframework/data/repository/util/QueryExecutionConverters.java @@ -525,7 +525,7 @@ public abstract class QueryExecutionConverters { */ @Override protected Object wrap(Object source) { - return ReflectionUtils.invokeMethod(OF_METHOD, source); + return ReflectionUtils.invokeMethod(OF_METHOD, null, source); } public static WrapperType getWrapperType() { diff --git a/src/test/java/org/springframework/data/repository/util/QueryExecutionConvertersUnitTests.java b/src/test/java/org/springframework/data/repository/util/QueryExecutionConvertersUnitTests.java index 51b211e88..91037dced 100644 --- a/src/test/java/org/springframework/data/repository/util/QueryExecutionConvertersUnitTests.java +++ b/src/test/java/org/springframework/data/repository/util/QueryExecutionConvertersUnitTests.java @@ -303,6 +303,16 @@ public class QueryExecutionConvertersUnitTests { assertThat(allowedPageableTypes, hasItem(io.vavr.collection.Seq.class)); } + @Test + public void convertsValueToVavrOption() { + + io.vavr.control.Option result = conversionService.convert(new NullableWrapper("foo"), + io.vavr.control.Option.class); + + assertThat(result, is(vavrOption("foo"))); + + } + // Vavr @SuppressWarnings("unchecked")