From 693b4cf308e100fb62e8f94b5a90c6a054dfd142 Mon Sep 17 00:00:00 2001 From: "Alexander.Likhachev" Date: Thu, 24 Aug 2023 01:40:19 +0200 Subject: [PATCH] [Gradle] Fix creating empty directory marker for backups The problem was occurring in the case the first directory for backup does not exist #KT-61273 Fixed --- .../org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt | 1 - .../org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index db9aecf9022..17a834fadfe 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -769,7 +769,6 @@ class KotlinGradleIT : KGPBaseTest() { } } - @Disabled @DisplayName("KT-61273: task output backup works correctly if the first output is absent") @GradleTest fun taskOutputBackupWorksIfFirstOutputIsAbsent(gradleVersion: GradleVersion) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt index 9d2cd1d770e..1ad64675a97 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksOutputsBackup.kt @@ -50,7 +50,9 @@ internal class TaskOutputsBackup( ) } else if (!outputPath.exists()) { logger.debug("Ignoring $outputPath in making a backup as it does not exist") - File(snapshotsDir.get().asFile, index.asNotExistsMarkerFile).createNewFile() + val markerFile = File(snapshotsDir.get().asFile, index.asNotExistsMarkerFile) + markerFile.parentFile.mkdirs() + markerFile.createNewFile() } else { val snapshotFile = snapshotsDir.map { it.file(index.asSnapshotDirectoryName).asFile } logger.debug("Copying $outputPath as $snapshotFile to make a backup")