You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat : handle thread safe issue for getCurrentFutures (#1843)
### 📝 Description
improve thread safe issue for getCurrentFutures
current implementation get the values form cachemap for dataloaders.
And make it flatten. But when we get the values it's just iterator, not
all the elements is obtained.
So when we run flatten, it traverse the each iterator, and it make
```ArrayIndexOutOfBoundException```
Following is error message
```
aused by: java.lang.ArrayIndexOutOfBoundsException: Index 279 out of bounds for length 279
at java.base/java.util.HashMap.valuesToArray(HashMap.java:973)
at java.base/java.util.HashMap$Values.toArray(HashMap.java:1050)
at java.base/java.util.ArrayList.addAll(ArrayList.java:670)
at kotlin.collections.CollectionsKt__MutableCollectionsKt.addAll(MutableCollections.kt:116)
at kotlin.collections.CollectionsKt__IterablesKt.flatten(Iterables.kt:49)
at com.expediagroup.graphql.dataloader.KotlinDataLoaderRegistry.getCurrentFutures(KotlinDataLoaderRegistry.kt:67)
at com.expediagroup.graphql.dataloader.KotlinDataLoaderRegistry.dispatchAll(KotlinDataLoaderRegistry.kt:78)
at graphql.execution.instrumentation.dataloader.FieldLevelTrackingApproach.dispatch(FieldLevelTrackingApproach.java:242)
at graphql.execution.instrumentation.dataloader.FieldLevelTrackingApproach$1.onFieldValuesInfo(FieldLevelTrackingApproach.java:150)
at graphql.execution.AsyncExecutionStrategy.lambda$execute$1(AsyncExecutionStrategy.java:72)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:863)
... 50 common frames omitted
```
### 🔗 Related Issues
#1837
Copy file name to clipboardExpand all lines: executions/graphql-kotlin-dataloader/src/main/kotlin/com/expediagroup/graphql/dataloader/KotlinDataLoaderRegistry.kt
+5-5
Original file line number
Diff line number
Diff line change
@@ -61,11 +61,11 @@ class KotlinDataLoaderRegistry(
0 commit comments