Skip to content

Commit 610a658

Browse files
committed
Polishing
1 parent d292ffd commit 610a658

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

spring-graphql/src/main/java/org/springframework/graphql/data/method/InvocableHandlerMethodSupport.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@
1717

1818
import java.lang.reflect.InvocationTargetException;
1919
import java.lang.reflect.Method;
20+
import java.util.ArrayList;
2021
import java.util.Arrays;
2122
import java.util.List;
2223
import java.util.concurrent.Callable;
2324
import java.util.concurrent.CompletableFuture;
2425
import java.util.concurrent.Executor;
25-
import java.util.stream.Collectors;
26-
import java.util.stream.Stream;
2726

2827
import graphql.GraphQLContext;
2928
import io.micrometer.context.ContextSnapshot;
@@ -132,16 +131,19 @@ private Object handleReturnValue(GraphQLContext graphQLContext, @Nullable Object
132131
*/
133132
@SuppressWarnings("unchecked")
134133
protected Mono<Object[]> toArgsMono(Object[] args) {
135-
136-
List<Mono<Object>> monoList = Arrays.stream(args)
137-
.map(arg -> {
138-
Mono<Object> argMono = (arg instanceof Mono ? (Mono<Object>) arg : Mono.justOrEmpty(arg));
139-
return argMono.defaultIfEmpty(NO_VALUE);
140-
})
141-
.collect(Collectors.toList());
142-
143-
return Mono.zip(monoList,
144-
values -> Stream.of(values).map(value -> value != NO_VALUE ? value : null).toArray());
134+
List<Mono<Object>> monoList = new ArrayList<>();
135+
for (Object arg : args) {
136+
Mono<Object> argMono = (arg instanceof Mono ? (Mono<Object>) arg : Mono.justOrEmpty(arg));
137+
monoList.add(argMono.defaultIfEmpty(NO_VALUE));
138+
}
139+
return Mono.zip(monoList, values -> {
140+
for (int i = 0; i < values.length; i++) {
141+
if (values[i] == NO_VALUE) {
142+
values[i] = null;
143+
}
144+
}
145+
return values;
146+
});
145147
}
146148

147149
}

0 commit comments

Comments
 (0)