-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Closed
Description
I am trying to upgrade the library from 18.0 to 20.0 today and found below regression.
Describe the bug
The LadmbdaFetchingSupport has a regression that causeS this error:
java.lang.ClassCastException: part.to.namespace.Xxx incompatible with part.to.namespace.Xxx
at graphql.schema.PropertyFetchingImpl.getPropertyValue(PropertyFetchingImpl.java:76) ~[graphql-java-20.0.jar:na]
at graphql.schema.PropertyDataFetcherHelper.getPropertyValue(PropertyDataFetcherHelper.java:22) ~[graphql-java-20.0.jar:na]
at graphql.schema.PropertyDataFetcher.getImpl(PropertyDataFetcher.java:131) ~[graphql-java-20.0.jar:na]
To Reproduce
Environment: Java 17, Kotlin 1.8.0,
last known good library version: 19.3
// This works
object.getClass().getDeclaredMethods()[0].invoke(object)
// This doesn't work
LambdaFetchingSupport.createGetter(object.getClass(), "id").get().apply(object)I wasn't able to re-produce the error with the exact same class in Junit environement.
Two different things maybe related when I check the object.getClass()
In Junit, the class loader is ClassLoaders$AppClassLoader
In application , it is RestartClassLoader from Spring.
// This work
ProtectionDomain (file:/C:/dev/asterisk/app/build/classes/kotlin/main/ <no signer certificates>)
jdk.internal.loader.ClassLoaders$AppClassLoader@2089d901
<no principals>
java.security.Permissions@fe1776a3 (
("java.io.FilePermission" "C:\dev\asterisk\app\build\classes\kotlin\main\-" "read")
("java.lang.RuntimePermission" "exitVM")
)
// This doesn't work
ProtectionDomain (file:/C:/dev/asterisk/app/build/classes/kotlin/main/ <no signer certificates>)
org.springframework.boot.devtools.restart.classloader.RestartClassLoader@d8afcbba
<no principals>
java.security.Permissions@f41df67b (
("java.net.SocketPermission" "localhost:0" "listen,resolve")
("java.lang.RuntimePermission" "accessClassInPackage.com.sun.beans.*")
("java.lang.RuntimePermission" "accessClassInPackage.com.apple.*")
("java.lang.RuntimePermission" "accessClassInPackage.com.sun.java.swing.plaf.*")
("java.lang.RuntimePermission" "accessClassInPackage.com.sun.beans")
("java.util.PropertyPermission" "java.specification.version" "read")
("java.util.PropertyPermission" "java.vm.vendor" "read")
("java.util.PropertyPermission" "path.separator" "read")
("java.util.PropertyPermission" "os.version" "read")
("java.util.PropertyPermission" "java.vendor.url" "read")
("java.util.PropertyPermission" "java.vm.name" "read")
("java.util.PropertyPermission" "java.vm.specification.version" "read")
("java.util.PropertyPermission" "os.name" "read")
("java.util.PropertyPermission" "java.version" "read")
("java.util.PropertyPermission" "os.arch" "read")
("java.util.PropertyPermission" "java.specification.vendor" "read")
("java.util.PropertyPermission" "java.vm.specification.name" "read")
("java.util.PropertyPermission" "file.separator" "read")
("java.util.PropertyPermission" "line.separator" "read")
("java.util.PropertyPermission" "java.vm.specification.vendor" "read")
("java.util.PropertyPermission" "java.specification.name" "read")
("java.util.PropertyPermission" "java.vendor" "read")
("java.util.PropertyPermission" "java.vm.version" "read")
("java.util.PropertyPermission" "java.class.version" "read")
("java.io.FilePermission" "C:\dev\asterisk\app\build\classes\kotlin\main\-" "read")
("java.io.FilePermission" "C:\dev\asterisk\app\build\classes\kotlin\main\-#plus" "read")
)
Metadata
Metadata
Assignees
Labels
No labels