Skip to content

Add deserialization tests - #939

Merged
iuliiasobolevska merged 2 commits into
masterfrom
add-deser-tests
Oct 28, 2026
Merged

iuliiasobolevska merged 2 commits into
masterfrom
add-deser-tests

Conversation

@jiholee17

Copy link
Copy Markdown
Contributor

Add basic tests for deserialization of JSON response → Java POJO, factored out into a separate JavaDeserializationTest.kt file for extensibility.

Also refactor CodegenTestClassLoader that loads and links test classes to use HashMap and synchronized block instead of ConcurrentHashMap as the latter was causing

Recursive update
java.lang.IllegalStateException: Recursive update
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1763)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass(CodegenTestClassLoader.kt:38)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:879)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass$lambda$4$lambda$2(CodegenTestClassLoader.kt:51)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass$lambda$4$lambda$3(CodegenTestClassLoader.kt:44)
	at java.base/java.util.Optional.map(Optional.java:260)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass$lambda$4(CodegenTestClassLoader.kt:44)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass$lambda$5(CodegenTestClassLoader.kt:38)
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
	at com.netflix.graphql.dgs.codegen.CodegenTestClassLoader.loadClass(CodegenTestClassLoader.kt:38)

when loadClass is called for a non-bootstrap superclass while evaluating child class (i.e. *Projection and BaseSubProjectionNode) when it re-enters the map, to set up instantiating instance for runtime test.

@iuliiasobolevska
iuliiasobolevska merged commit c1da4ab into master Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants