From 9dbc4a9d479db910450deecb39253dc323c50342 Mon Sep 17 00:00:00 2001 From: Samuel Vazquez Date: Tue, 29 Apr 2025 14:22:37 -0700 Subject: [PATCH] avoid wrapping materialized fieldValueObject in a completable future --- src/main/java/graphql/execution/ExecutionStrategy.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/graphql/execution/ExecutionStrategy.java b/src/main/java/graphql/execution/ExecutionStrategy.java index f2cccd4072..fc38672547 100644 --- a/src/main/java/graphql/execution/ExecutionStrategy.java +++ b/src/main/java/graphql/execution/ExecutionStrategy.java @@ -651,10 +651,13 @@ private FieldValueInfo completeField(GraphQLFieldDefinition fieldDef, ExecutionC ); FieldValueInfo fieldValueInfo = completeValue(executionContext, newParameters); - - CompletableFuture executionResultFuture = fieldValueInfo.getFieldValueFuture(); ctxCompleteField.onDispatched(); - executionResultFuture.whenComplete(ctxCompleteField::onCompleted); + if (fieldValueInfo.isFutureValue()) { + CompletableFuture executionResultFuture = fieldValueInfo.getFieldValueFuture(); + executionResultFuture.whenComplete(ctxCompleteField::onCompleted); + } else { + ctxCompleteField.onCompleted(fieldValueInfo.getFieldValueObject(), null); + } return fieldValueInfo; }