Skip to content

Commit b0cc245

Browse files
nav-navSpace Team
authored and
Space Team
committed
Avoid throwing exception when BuildFusService can't be injected
#KT-63990
1 parent cfbb957 commit b0cc245

File tree

6 files changed

+33
-4
lines changed

6 files changed

+33
-4
lines changed

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ProjectIsolationIT.kt

+16
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,20 @@ class ProjectIsolationIT : KGPBaseTest() {
2828
build(":main-project:compileKotlin")
2929
}
3030
}
31+
32+
@DisplayName("project with buildSrc should be compatible with project isolation")
33+
@GradleTestVersions(
34+
minVersion = TestVersions.Gradle.G_7_4
35+
)
36+
@JvmGradlePluginTests
37+
@GradleTest
38+
fun testProjectIsolationWithBuildSrc(gradleVersion: GradleVersion) {
39+
project(
40+
projectName = "kt-63990-buildSrcWithKotlinJvmPlugin",
41+
gradleVersion = gradleVersion,
42+
buildOptions = defaultBuildOptions.copy(configurationCache = null)
43+
) {
44+
build("tasks")
45+
}
46+
}
3147
}

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ data class BuildOptions(
2424
val stacktraceMode: String? = StacktraceOption.FULL_STACKTRACE_LONG_OPTION,
2525
val kotlinVersion: String = TestVersions.Kotlin.CURRENT,
2626
val warningMode: WarningMode = WarningMode.Fail,
27-
val configurationCache: Boolean = false,
27+
val configurationCache: Boolean? = false, //null value is only for cases, when project isolation is used without configuration cache. Otherwise Gradle runner will throw exception "The configuration cache cannot be disabled when isolated projects is enabled."
2828
val projectIsolation: Boolean = false,
2929
val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL,
3030
val parallel: Boolean = true,
@@ -114,8 +114,10 @@ data class BuildOptions(
114114
WarningMode.None -> arguments.add("--warning-mode=none")
115115
}
116116

117-
arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache")
118-
arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}")
117+
if (configurationCache != null) {
118+
arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache")
119+
arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.lowercase(Locale.getDefault())}")
120+
}
119121

120122
if (gradleVersion >= GradleVersion.version("7.1")) {
121123
arguments.add("-Dorg.gradle.unsafe.isolated-projects=$projectIsolation")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
plugins {
2+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
plugins {
2+
kotlin("jvm")
3+
}
4+
5+
repositories {
6+
mavenLocal()
7+
mavenCentral()
8+
gradlePluginPortal()
9+
}

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-63990-buildSrcWithKotlinJvmPlugin/buildSrc/src/main/kotlin/my-conventions.gradle.kts

Whitespace-only changes.

libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/StatisticsBuildFlowManager.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ internal class BuildFinishFlowAction : FlowAction<BuildFinishFlowAction.Paramete
7272
}
7373

7474
override fun execute(parameters: Parameters) {
75-
parameters.buildFlowServiceProperty.get().recordBuildFinished(
75+
parameters.buildFlowServiceProperty.orNull?.recordBuildFinished(
7676
parameters.action.orNull, parameters.buildFailed.get()
7777
)
7878
}

0 commit comments

Comments
 (0)