From 31b2fffbe15bcd49623b022bb6a27ea811581b5b Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 20 Jun 2017 12:04:51 +0300 Subject: [PATCH] Avoid NPE at UtilKt.toJavaClass for unrecognized classes Sadly, the case where this NPE would reproduce, remains unknown #KT-18494 Fixed --- core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt index bf3d5ab0d32..d66b21ce79b 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/util.kt @@ -53,9 +53,9 @@ internal fun ClassDescriptor.toJavaClass(): Class<*>? { (source.javaElement as ReflectJavaClass).element } else -> { - // If this is neither a Kotlin class nor a Java class, it is either a built-in or some fake class descriptor like the one + // If this is neither a Kotlin class nor a Java class, it's likely either a built-in or some fake class descriptor like the one // that's created for java.io.Serializable in JvmBuiltInsSettings - val classId = JavaToKotlinClassMap.mapKotlinToJava(DescriptorUtils.getFqName(this)) ?: classId!! + val classId = JavaToKotlinClassMap.mapKotlinToJava(DescriptorUtils.getFqName(this)) ?: classId ?: return null val packageName = classId.packageFqName.asString() val className = classId.relativeClassName.asString() // All pseudo-classes like kotlin.String.Companion must be accessible from the current class loader