@@ -106,7 +106,7 @@ private boolean keepOrdered(GraphQLContext graphQLContext) {
106106 */
107107
108108 private CompletableFuture <Publisher <Object >> createSourceEventStream (ExecutionContext executionContext , ExecutionStrategyParameters parameters ) {
109- ExecutionStrategyParameters newParameters = firstFieldOfSubscriptionSelection (parameters );
109+ ExecutionStrategyParameters newParameters = firstFieldOfSubscriptionSelection (executionContext , parameters );
110110
111111 CompletableFuture <FetchedValue > fieldFetched = Async .toCompletableFuture (fetchField (executionContext , newParameters ));
112112 return fieldFetched .thenApply (fetchedValue -> {
@@ -139,7 +139,7 @@ private CompletableFuture<ExecutionResult> executeSubscriptionEvent(ExecutionCon
139139 .root (eventPayload )
140140 .resetErrors ()
141141 );
142- ExecutionStrategyParameters newParameters = firstFieldOfSubscriptionSelection (parameters );
142+ ExecutionStrategyParameters newParameters = firstFieldOfSubscriptionSelection (newExecutionContext , parameters );
143143 ExecutionStepInfo subscribedFieldStepInfo = createSubscribedFieldStepInfo (executionContext , newParameters );
144144
145145 InstrumentationFieldParameters i13nFieldParameters = new InstrumentationFieldParameters (executionContext , () -> subscribedFieldStepInfo );
@@ -179,12 +179,14 @@ private String getRootFieldName(ExecutionStrategyParameters parameters) {
179179 return rootField .getResultKey ();
180180 }
181181
182- private ExecutionStrategyParameters firstFieldOfSubscriptionSelection (ExecutionStrategyParameters parameters ) {
182+ private ExecutionStrategyParameters firstFieldOfSubscriptionSelection (ExecutionContext executionContext , ExecutionStrategyParameters parameters ) {
183183 MergedSelectionSet fields = parameters .getFields ();
184184 MergedField firstField = fields .getSubField (fields .getKeys ().get (0 ));
185185
186186 ResultPath fieldPath = parameters .getPath ().segment (mkNameForPath (firstField .getSingleField ()));
187- return parameters .transform (builder -> builder .field (firstField ).path (fieldPath ));
187+ NonNullableFieldValidator nonNullableFieldValidator = new NonNullableFieldValidator (executionContext );
188+ return parameters .transform (builder -> builder
189+ .field (firstField ).path (fieldPath ).nonNullFieldValidator (nonNullableFieldValidator ));
188190 }
189191
190192 private ExecutionStepInfo createSubscribedFieldStepInfo (ExecutionContext executionContext , ExecutionStrategyParameters parameters ) {
0 commit comments