From 12a6352bef01d5e65bc452a20f91d4efb77a199a Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 30 Jul 2020 13:59:25 -0400 Subject: [PATCH] Fix NPE in KaptJavaLog See https://issuetracker.google.com/issues/162446295 for more context, but in short: this will fail if the project: * targets java 8 * consumes external libraries targeting a higher version (java 9+). This includes Android SDK 30's android.jar, which targets java 9 * has `mapDiagnosticLocations` enabled for kapt targetElement is a nullable type, so this seems like a pretty cut-and-dry NPE fix --- .../src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt index 748a571fb49..0036ea7b229 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/javac/KaptJavaLog.kt @@ -82,7 +82,7 @@ class KaptJavaLog( } } - if (mapDiagnosticLocations && sourceFile != null && targetElement.tree != null) { + if (mapDiagnosticLocations && sourceFile != null && targetElement?.tree != null) { val kotlinPosition = stubLineInfo.getPositionInKotlinFile(sourceFile, targetElement.tree) val kotlinFile = kotlinPosition?.let { getKotlinSourceFile(it) } if (kotlinPosition != null && kotlinFile != null) {