From 77283155d9fa280e4b6478ed9023835f43260e7b Mon Sep 17 00:00:00 2001 From: Brad Baker Date: Wed, 28 Feb 2024 18:41:23 +1100 Subject: [PATCH 1/2] removing parameters not needed on dispatch --- .../java/graphql/execution/DataLoaderDispatchStrategy.java | 5 ++--- src/main/java/graphql/execution/ExecutionStrategy.java | 2 +- .../dataloader/PerLevelDataLoaderDispatchStrategy.java | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java index 7cdc32d980..bb5bbb8d76 100644 --- a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java @@ -39,9 +39,8 @@ default void executeObjectOnFieldValuesException(Throwable t, ExecutionStrategyP } default void fieldFetched(ExecutionContext executionContext, - ExecutionStrategyParameters executionStrategyParameters, - DataFetcher dataFetcher, - CompletableFuture fetchedValue) { + ExecutionStrategyParameters executionStrategyParameters + ) { } diff --git a/src/main/java/graphql/execution/ExecutionStrategy.java b/src/main/java/graphql/execution/ExecutionStrategy.java index 0d79d326b8..4fe4415b2e 100644 --- a/src/main/java/graphql/execution/ExecutionStrategy.java +++ b/src/main/java/graphql/execution/ExecutionStrategy.java @@ -424,7 +424,7 @@ protected CompletableFuture fetchField(ExecutionContext executionC dataFetcher = instrumentation.instrumentDataFetcher(dataFetcher, instrumentationFieldFetchParams, executionContext.getInstrumentationState()); dataFetcher = executionContext.getDataLoaderDispatcherStrategy().modifyDataFetcher(dataFetcher); CompletableFuture fetchedValue = invokeDataFetcher(executionContext, parameters, fieldDef, dataFetchingEnvironment, dataFetcher); - executionContext.getDataLoaderDispatcherStrategy().fieldFetched(executionContext, parameters, dataFetcher, fetchedValue); + executionContext.getDataLoaderDispatcherStrategy().fieldFetched(executionContext, parameters); fetchCtx.onDispatched(fetchedValue); return fetchedValue .handle((result, exception) -> { diff --git a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java index 9ac4e0d181..27bae57203 100644 --- a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java @@ -186,7 +186,7 @@ private int getCountForList(List fieldValueInfos) { @Override - public void fieldFetched(ExecutionContext executionContext, ExecutionStrategyParameters executionStrategyParameters, DataFetcher dataFetcher, CompletableFuture fetchedValue) { + public void fieldFetched(ExecutionContext executionContext, ExecutionStrategyParameters executionStrategyParameters) { int level = executionStrategyParameters.getPath().getLevel(); boolean dispatchNeeded = callStack.lock.callLocked(() -> { callStack.increaseFetchCount(level); From 31bf7abe78cd1f9793ebdd29b0ea959dab3a44cf Mon Sep 17 00:00:00 2001 From: Brad Baker Date: Wed, 28 Feb 2024 19:19:05 +1100 Subject: [PATCH 2/2] ok not removing them - changing them --- .../java/graphql/execution/DataLoaderDispatchStrategy.java | 5 +++-- src/main/java/graphql/execution/ExecutionStrategy.java | 2 +- .../dataloader/PerLevelDataLoaderDispatchStrategy.java | 6 ++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java index bb5bbb8d76..ee3c0bd97c 100644 --- a/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/DataLoaderDispatchStrategy.java @@ -39,8 +39,9 @@ default void executeObjectOnFieldValuesException(Throwable t, ExecutionStrategyP } default void fieldFetched(ExecutionContext executionContext, - ExecutionStrategyParameters executionStrategyParameters - ) { + ExecutionStrategyParameters executionStrategyParameters, + DataFetcher dataFetcher, + Object fetchedValue) { } diff --git a/src/main/java/graphql/execution/ExecutionStrategy.java b/src/main/java/graphql/execution/ExecutionStrategy.java index 4fe4415b2e..0d79d326b8 100644 --- a/src/main/java/graphql/execution/ExecutionStrategy.java +++ b/src/main/java/graphql/execution/ExecutionStrategy.java @@ -424,7 +424,7 @@ protected CompletableFuture fetchField(ExecutionContext executionC dataFetcher = instrumentation.instrumentDataFetcher(dataFetcher, instrumentationFieldFetchParams, executionContext.getInstrumentationState()); dataFetcher = executionContext.getDataLoaderDispatcherStrategy().modifyDataFetcher(dataFetcher); CompletableFuture fetchedValue = invokeDataFetcher(executionContext, parameters, fieldDef, dataFetchingEnvironment, dataFetcher); - executionContext.getDataLoaderDispatcherStrategy().fieldFetched(executionContext, parameters); + executionContext.getDataLoaderDispatcherStrategy().fieldFetched(executionContext, parameters, dataFetcher, fetchedValue); fetchCtx.onDispatched(fetchedValue); return fetchedValue .handle((result, exception) -> { diff --git a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java index 27bae57203..a407346954 100644 --- a/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java +++ b/src/main/java/graphql/execution/instrumentation/dataloader/PerLevelDataLoaderDispatchStrategy.java @@ -14,7 +14,6 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; -import java.util.concurrent.CompletableFuture; @Internal public class PerLevelDataLoaderDispatchStrategy implements DataLoaderDispatchStrategy { @@ -186,7 +185,10 @@ private int getCountForList(List fieldValueInfos) { @Override - public void fieldFetched(ExecutionContext executionContext, ExecutionStrategyParameters executionStrategyParameters) { + public void fieldFetched(ExecutionContext executionContext, + ExecutionStrategyParameters executionStrategyParameters, + DataFetcher dataFetcher, + Object fetchedValue) { int level = executionStrategyParameters.getPath().getLevel(); boolean dispatchNeeded = callStack.lock.callLocked(() -> { callStack.increaseFetchCount(level);