1010import net .bytebuddy .asm .Advice ;
1111import net .bytebuddy .implementation .bytecode .assign .Assigner ;
1212import org .dataloader .DataLoader ;
13+ import org .dataloader .DataLoaderRegistry ;
1314
1415import java .lang .instrument .Instrumentation ;
16+ import java .util .List ;
1517import java .util .Map ;
1618import java .util .Set ;
1719import java .util .concurrent .CompletableFuture ;
@@ -113,12 +115,10 @@ public static void load(@Advice.This(typing = Assigner.Typing.DYNAMIC) Object da
113115class DataLoaderRegistryAdvice {
114116
115117 @ Advice .OnMethodEnter
116- public static void dispatchAll () {
117- // StackWalker instance = StackWalker.getInstance();
118- // instance.forEach(stackFrame -> {
119- // System.out.println(stackFrame.getClassName() + " " + stackFrame.getMethodName() + " " + stackFrame.getLineNumber());
120- // });
121- System .out .println ("calling dispatchAll" );
118+ public static void dispatchAll (@ Advice .This (typing = Assigner .Typing .DYNAMIC ) Object dataLoaderRegistry ) {
119+ List <DataLoader <?, ?>> dataLoaders = ((DataLoaderRegistry ) dataLoaderRegistry ).getDataLoaders ();
120+ ExecutionId executionId = GraphQLJavaAgent .dataLoaderToExecutionId .get (dataLoaders .get (0 ));
121+ System .out .println ("calling dispatchAll for " + executionId );
122122 }
123123
124124}
@@ -134,7 +134,13 @@ public static void executeOperationEnter(@Advice.Argument(0) ExecutionContext ex
134134
135135 @ Advice .OnMethodExit
136136 public static void executeOperationExit (@ Advice .Argument (0 ) ExecutionContext executionContext ) {
137- System .out .println ("execution finished for: " + executionContext .getExecutionId ());
137+ ExecutionId executionId = executionContext .getExecutionId ();
138+ System .out .println ("execution finished for: " + executionId );
139+ // cleanup
140+ GraphQLJavaAgent .executionDataMap .get (executionId ).dataLoaderToName .forEach ((dataLoader , s ) -> {
141+ GraphQLJavaAgent .dataLoaderToExecutionId .remove (dataLoader );
142+ });
143+ GraphQLJavaAgent .executionDataMap .remove (executionContext .getExecutionId ());
138144 }
139145}
140146
0 commit comments