diff --git a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java index 13c4b4f7cfe..af6e1488181 100644 --- a/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java +++ b/jps/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilderModuleScriptGenerator.java @@ -115,12 +115,12 @@ public class KotlinBuilderModuleScriptGenerator { } @Nullable - public static File getFriendDirSafe(@NotNull ModuleBuildTarget target) throws ProjectBuildException { + private static File getFriendDirSafe(@NotNull ModuleBuildTarget target) throws ProjectBuildException { if (!target.isTests()) return null; File outputDirForProduction = JpsJavaExtensionService.getInstance().getOutputDirectory(target.getModule(), false); if (outputDirForProduction == null) { - throw new ProjectBuildException("No output production directory found for " + target); + return null; } return outputDirForProduction; } diff --git a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index 491b2ab40a6..545ab9e091c 100644 --- a/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -728,6 +728,10 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { doTest() } + fun testKotlinProjectWithEmptyProductionOutputDirWithoutSrcDir() { + doTest() + } + private fun BuildResult.checkErrors() { val actualErrors = getMessages(BuildMessage.Kind.ERROR) .map { it as CompilerMessage } diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml new file mode 100644 index 00000000000..43ffa57d1e2 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr new file mode 100644 index 00000000000..90747786771 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/kotlinProject.ipr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt new file mode 100644 index 00000000000..839220d1002 --- /dev/null +++ b/jps/jps-plugin/testData/general/KotlinProjectWithEmptyProductionOutputDirWithoutSrcDir/test/test.kt @@ -0,0 +1,3 @@ +fun test() { + +}