From 0bb0a64a5eb7f8848e14eb03d57cf22454f22f25 Mon Sep 17 00:00:00 2001 From: Michal Brosig Date: Thu, 12 Jan 2023 21:31:57 +0100 Subject: [PATCH] DefaultMethodHandler to use the same class loader as the method`s declaring class --- buildSrc/src/main/kotlin/ktorm.publish.gradle.kts | 4 ++++ .../main/kotlin/org/ktorm/entity/DefaultMethodHandler.kt | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts b/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts index 82492f182..bb46335dc 100644 --- a/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts +++ b/buildSrc/src/main/kotlin/ktorm.publish.gradle.kts @@ -151,6 +151,10 @@ publishing { name.set("michaelfyc") email.set("michael.fyc@outlook.com") } + developer { + id.set("brohacz") + name.set("Michal Brosig") + } } } } diff --git a/ktorm-core/src/main/kotlin/org/ktorm/entity/DefaultMethodHandler.kt b/ktorm-core/src/main/kotlin/org/ktorm/entity/DefaultMethodHandler.kt index b8b87bd4f..1b5ac0ea2 100644 --- a/ktorm-core/src/main/kotlin/org/ktorm/entity/DefaultMethodHandler.kt +++ b/ktorm-core/src/main/kotlin/org/ktorm/entity/DefaultMethodHandler.kt @@ -120,7 +120,11 @@ internal class DefaultMethodHandler( val handle = unreflectSpecial(method) DefaultMethodHandler(javaDefaultMethodHandle = handle) } else { - val cls = Class.forName(method.declaringClass.name + "\$DefaultImpls") + val cls = Class.forName( + method.declaringClass.name + "\$DefaultImpls", + true, + method.declaringClass.classLoader + ) val impl = cls.getMethod(method.name, method.declaringClass, *method.parameterTypes) DefaultMethodHandler(kotlinDefaultImplMethod = impl) }