From 73f543d3d518e9a75a82ff5e2cb633ffe4df20e4 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Tue, 23 Jun 2026 16:52:57 +0200 Subject: [PATCH] KTIJ-39233 KTIJ-39286 [kotlin] Fix NPE (cherry picked from commit 5f95557f5ef9c3e2f7915b5a2df6a362252a1726) IJ-CR-209652 GitOrigin-RevId: 64a1bd59984d470a57072d6bcd71218ed5ce97da --- .../configuration/KaptGradleProjectConfigurators.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 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 6b58aaf4a91a..ff7700cd25f6 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 @@ -117,7 +117,7 @@ internal fun PsiFile.configureKaptForLombokIfNeeded(sourceModule: Module, change internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, changedFiles: ChangedConfiguratorFiles) { val configFile = sourceModule.findLombokConfigFile(this) ?: return - val parentDirectory = virtualFile.parent ?: return + val parentDirectory = (virtualFile ?: originalFile.virtualFile )?.parent ?: return val relativePath = VfsUtilCore.getRelativePath(configFile, parentDirectory, '/') ?: return GradleBuildScriptSupport.getManipulator(this).configurePluginOptions( @@ -127,9 +127,11 @@ internal fun PsiFile.configureKotlinLombokConfigIfNeeded(sourceModule: Module, c ) } -private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? = - buildScript.virtualFile?.parent?.findChild("lombok.config") +private fun Module.findLombokConfigFile(buildScript: PsiFile): VirtualFile? { + val virtualFile = buildScript.virtualFile ?: buildScript.originalFile.virtualFile + return virtualFile?.parent?.findChild("lombok.config") ?: project.getTopLevelBuildScriptPsiFile()?.virtualFile?.parent?.findChild("lombok.config") +} private fun String.isLombokProcessorPath(): Boolean = substringAfterLast('/').substringAfterLast('\\').contains("lombok", ignoreCase = true)