18
18
19
19
import java .util .List ;
20
20
import java .util .Map ;
21
- import java .util .concurrent .CompletableFuture ;
22
- import java .util .concurrent .ExecutionException ;
23
21
24
22
import reactor .core .publisher .Mono ;
25
23
@@ -106,7 +104,7 @@ public void setHttpOkOnValidationErrors(boolean httpOkOnValidationErrors) {
106
104
@ Override
107
105
protected ServerResponse prepareResponse (ServerRequest request , Mono <WebGraphQlResponse > responseMono ) {
108
106
109
- CompletableFuture <ServerResponse > future = responseMono .map ((response ) -> {
107
+ Mono <ServerResponse > mono = responseMono .map ((response ) -> {
110
108
MediaType contentType = selectResponseMediaType (request );
111
109
HttpStatus responseStatus = selectResponseStatus (response , contentType );
112
110
ServerResponse .BodyBuilder builder = ServerResponse .status (responseStatus );
@@ -116,21 +114,9 @@ protected ServerResponse prepareResponse(ServerRequest request, Mono<WebGraphQlR
116
114
Map <String , Object > resultMap = response .toMap ();
117
115
ServerResponse .HeadersBuilder .WriteFunction writer = getWriteFunction (resultMap , contentType );
118
116
return (writer != null ) ? builder .build (writer ) : builder .body (resultMap );
119
- }). toFuture () ;
117
+ });
120
118
121
- // This won't be needed on a Spring Framework 6.2 baseline:
122
- // https://github.com/spring-projects/spring-framework/issues/32223
123
-
124
- if (future .isDone () && !future .isCancelled () && !future .isCompletedExceptionally ()) {
125
- try {
126
- return future .get ();
127
- }
128
- catch (InterruptedException | ExecutionException ignored ) {
129
- // fall through to use DefaultAsyncServerResponse
130
- }
131
- }
132
-
133
- return ServerResponse .async (future );
119
+ return ServerResponse .async (mono .toFuture ());
134
120
}
135
121
136
122
protected HttpStatus selectResponseStatus (WebGraphQlResponse response , MediaType responseMediaType ) {
0 commit comments