diff --git a/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java b/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java index 5be957ecc2b8..e629fb3b64ed 100644 --- a/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java +++ b/spring-core/src/main/java/org/springframework/core/ReactiveAdapterRegistry.java @@ -375,7 +375,7 @@ private static class MutinyRegistrar { void registerAdapters(ReactiveAdapterRegistry registry) { ReactiveTypeDescriptor uniDesc = ReactiveTypeDescriptor.singleOptionalValue( io.smallrye.mutiny.Uni.class, - () -> io.smallrye.mutiny.Uni.createFrom().nothing()); + () -> io.smallrye.mutiny.Uni.createFrom().nullItem()); ReactiveTypeDescriptor multiDesc = ReactiveTypeDescriptor.multiValue( io.smallrye.mutiny.Multi.class, () -> io.smallrye.mutiny.Multi.createFrom().empty()); diff --git a/spring-core/src/test/java/org/springframework/core/ReactiveAdapterRegistryTests.java b/spring-core/src/test/java/org/springframework/core/ReactiveAdapterRegistryTests.java index 355e165f231c..0d5129edaf15 100644 --- a/spring-core/src/test/java/org/springframework/core/ReactiveAdapterRegistryTests.java +++ b/spring-core/src/test/java/org/springframework/core/ReactiveAdapterRegistryTests.java @@ -300,6 +300,20 @@ void fromUni() { assertThat(((Mono) target).block(FIVE_SECONDS)).isEqualTo(Integer.valueOf(1)); } + @Test + void fromNullValue() { + Object target = getAdapter(Uni.class).toPublisher(null); + assertThat(target).isInstanceOf(Mono.class); + assertThat(((Mono) target).block(FIVE_SECONDS)).isNull(); + } + + @Test + void toUniFromEmptyPublisher() { + Object target = getAdapter(Uni.class).fromPublisher(Mono.empty()); + assertThat(target).isInstanceOf(Uni.class); + assertThat(((Uni) target).await().atMost(FIVE_SECONDS)).isNull(); + } + @Test void toMulti() { List sequence = Arrays.asList(1, 2, 3);