Skip to content

Add deserialization tests#939

Open
jiholee17 wants to merge 1 commit intomasterfrom
add-deser-tests
Open

Add deserialization tests#939
jiholee17 wants to merge 1 commit intomasterfrom
add-deser-tests

Conversation

@jiholee17
Copy link
Copy Markdown
Collaborator

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.

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.

1 participant