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() {
+
+}