diff --git a/libraries/stdlib/jvm/src/kotlin/internal/PlatformImplementations.kt b/libraries/stdlib/jvm/src/kotlin/internal/PlatformImplementations.kt index b819dbd52e1..09c6518050c 100644 --- a/libraries/stdlib/jvm/src/kotlin/internal/PlatformImplementations.kt +++ b/libraries/stdlib/jvm/src/kotlin/internal/PlatformImplementations.kt @@ -77,7 +77,10 @@ private inline fun castToBaseType(instance: Any): T { } catch (e: ClassCastException) { val instanceCL = instance.javaClass.classLoader val baseTypeCL = T::class.java.classLoader - throw ClassCastException("Instance classloader: $instanceCL, base type classloader: $baseTypeCL").initCause(e) + if (instanceCL != baseTypeCL) { + throw ClassNotFoundException("Instance class was loaded from a different classloader: $instanceCL, base type classloader: $baseTypeCL", e) + } + throw e } }