From 1435ff83874bdb4ecfa093c8b23a0211e450e79e Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Mon, 22 Jun 2026 12:20:36 +0200 Subject: [PATCH] KTIJ-39233 [kotlin] Fix NPE (cherry picked from commit 26315777cc97fb70179ff7c6c96ac775bcddb43f) IJ-CR-209652 GitOrigin-RevId: b563e884e0ad7e557a86a2c761005ea052bd7451 --- .../KaptGradleProjectConfigurators.kt | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KaptGradleProjectConfigurators.kt b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KaptGradleProjectConfigurators.kt index 409931db4cdd..6b58aaf4a91a 100644 --- a/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KaptGradleProjectConfigurators.kt +++ b/plugins/kotlin/gradle/gradle-java/src/org/jetbrains/kotlin/idea/gradleJava/configuration/KaptGradleProjectConfigurators.kt @@ -5,6 +5,7 @@ import com.intellij.compiler.CompilerConfiguration import com.intellij.java.library.JavaLibraryUtil import com.intellij.openapi.module.Module import com.intellij.openapi.vfs.VfsUtilCore +import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.base.util.isGradleModule @@ -115,19 +116,20 @@ internal fun PsiFile.configureKaptForLombokIfNeeded(sourceModule: Module, change } internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) { - val configFile = sourceModule.findLombokConfigFile(this) ?: return - val relativePath = VfsUtilCore.getRelativePath(configFile, virtualFile.parent, '/') ?: return + val configFile = sourceModule.findLombokConfigFile(this) ?: return + val parentDirectory = virtualFile.parent ?: return + val relativePath = VfsUtilCore.getRelativePath(configFile, parentDirectory, '/') ?: return - GradleBuildScriptSupport.getManipulator(this).configurePluginOptions( - "kotlinLombok", - changedFiles, - "lombokConfigurationFile(file(\"$relativePath\"))", - ) + GradleBuildScriptSupport.getManipulator(this).configurePluginOptions( + "kotlinLombok", + changedFiles, + "lombokConfigurationFile(file(\"$relativePath\"))", + ) } -private fun Module.findLombokConfigFile(buildScript: PsiFile) = - buildScript.virtualFile.parent.findChild("lombok.config") - ?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config") +private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? = + buildScript.virtualFile?.parent?.findChild("lombok.config") + ?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config") private fun String.isLombokProcessorPath(): Boolean = substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)