Skip to content

Commit 67d6cd5

Browse files
authored
Merge pull request #198 from jmccaull/master
Per request context setting bug fixes
2 parents 8ea7d83 + 37bb67f commit 67d6cd5

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

src/main/java/graphql/servlet/instrumentation/ConfigurableDispatchInstrumentation.java

+10-9
Original file line numberDiff line numberDiff line change
@@ -162,19 +162,20 @@ public InstrumentationContext<Object> beginFieldFetch(InstrumentationFieldFetchP
162162

163163
@Override
164164
public CompletableFuture<ExecutionResult> instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters) {
165-
if (!options.isIncludeStatistics()) {
166-
return CompletableFuture.completedFuture(executionResult);
167-
}
168165
DataLoaderDispatcherInstrumentationState state = parameters.getInstrumentationState();
169-
Map<Object, Object> currentExt = executionResult.getExtensions();
170-
Map<Object, Object> statsMap = new LinkedHashMap<>(currentExt == null ? Collections.emptyMap() : currentExt);
171-
Map<Object, Object> dataLoaderStats = buildStatsMap(state);
172-
statsMap.put("dataloader", dataLoaderStats);
173166
state.getApproach().removeTracking(parameters.getExecutionInput().getExecutionId());
167+
if (!options.isIncludeStatistics()) {
168+
return CompletableFuture.completedFuture(executionResult);
169+
} else {
170+
Map<Object, Object> currentExt = executionResult.getExtensions();
171+
Map<Object, Object> statsMap = new LinkedHashMap<>(currentExt == null ? Collections.emptyMap() : currentExt);
172+
Map<Object, Object> dataLoaderStats = buildStatsMap(state);
173+
statsMap.put("dataloader", dataLoaderStats);
174174

175-
log.debug("Data loader stats : {}", dataLoaderStats);
175+
log.debug("Data loader stats : {}", dataLoaderStats);
176176

177-
return CompletableFuture.completedFuture(new ExecutionResultImpl(executionResult.getData(), executionResult.getErrors(), statsMap));
177+
return CompletableFuture.completedFuture(new ExecutionResultImpl(executionResult.getData(), executionResult.getErrors(), statsMap));
178+
}
178179
}
179180

180181
private Map<Object, Object> buildStatsMap(DataLoaderDispatcherInstrumentationState state) {

src/main/java/graphql/servlet/instrumentation/RequestStack.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@ public void setStatus(ExecutionId executionId, boolean toState) {
117117
throw new IllegalStateException(
118118
String.format("Can not set status for execution %s, it is not managed by this request stack", executionId));
119119
}
120-
status.put(executionId, toState);
120+
if (toState) {
121+
status.put(executionId, true);
122+
}
121123
}
122124

123125
/**

0 commit comments

Comments
 (0)