diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/CleanUpBuildListener.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/CleanUpBuildListener.kt index 0c4b5561d8d..83819b3d35a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/CleanUpBuildListener.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/CleanUpBuildListener.kt @@ -21,9 +21,7 @@ import org.gradle.BuildAdapter import org.gradle.BuildResult import org.gradle.api.Project import org.gradle.api.logging.Logging -import org.gradle.api.tasks.compile.AbstractCompile import java.util.concurrent.ScheduledExecutorService -import kotlin.properties.Delegates private fun comparableVersionStr(version: String) = @@ -42,7 +40,6 @@ class CleanUpBuildListener(pluginClassLoader: ClassLoader, private val project: } private val log = Logging.getLogger(this.javaClass) - private var threadTracker: ThreadTracker? = ThreadTracker() private val cleanup = CompilerServicesCleanup(pluginClassLoader) private var startMemory: Long? = null @@ -65,15 +62,11 @@ class CleanUpBuildListener(pluginClassLoader: ClassLoader, private val project: log.kotlinDebug("Cleanup after kotlin") cleanup(gradle.gradleVersion) - - // checking thread leaks only then cleaning up - threadTracker?.checkThreadLeak(gradle) } else { log.kotlinDebug("Skipping kotlin cleanup since compiler wasn't called") } - threadTracker = null gradle.removeListener(this) if (kotlinCompilerCalled) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ThreadTracker.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ThreadTracker.kt deleted file mode 100644 index 53f9458c64d..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ThreadTracker.kt +++ /dev/null @@ -1,42 +0,0 @@ -package org.jetbrains.kotlin.gradle.plugin - -import org.gradle.api.invocation.Gradle -import org.gradle.api.logging.Logging -import java.util.* - -class ThreadTracker { - val log = Logging.getLogger(this.javaClass) - private var before: Collection? = getThreads() - - private fun getThreads(): Collection = Thread.getAllStackTraces().keys - - fun checkThreadLeak(gradle: Gradle?) { - try { - val testThreads = gradle != null && gradle.rootProject.hasProperty(ASSERT_THREAD_LEAKS_PROPERTY) - - Thread.sleep(if (testThreads) 200L else 50L) - - val after = HashSet(getThreads()) - after.removeAll(before!!) - - for (thread in after) { - if (thread == Thread.currentThread()) continue - - val name = thread.name - - if (testThreads) { - throw RuntimeException("Thread leaked: $thread: $name\n ${thread.stackTrace.joinToString(separator = "\n", prefix = " at ")}") - } - else { - log.info("Thread leaked: $thread: $name") - } - } - } finally { - before = null - } - } - - companion object { - const val ASSERT_THREAD_LEAKS_PROPERTY = "kotlin.gradle.test.assertThreadLeaks" - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index dde799b3f2a..cc89b2a7c99 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -13,7 +13,6 @@ abstract class AbstractKotlinAndroidGradleTests( override fun defaultBuildOptions() = BuildOptions(withDaemon = true, - assertThreadLeaks = false, androidHome = File("../../../dependencies/android-sdk-for-tests"), androidGradlePluginVersion = androidGradlePluginVersion) diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index c136284f625..2a348226ba5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -3,7 +3,6 @@ package org.jetbrains.kotlin.gradle import com.google.common.io.Files import com.intellij.openapi.util.io.FileUtil import org.gradle.api.logging.LogLevel -import org.jetbrains.kotlin.gradle.plugin.ThreadTracker import org.jetbrains.kotlin.gradle.util.createGradleCommand import org.jetbrains.kotlin.gradle.util.runProcess import org.junit.After @@ -71,10 +70,6 @@ abstract class BaseGradleIT { val withDaemon: Boolean = false, val daemonOptionSupported: Boolean = true, val incremental: Boolean? = null, - /** - * @see [ThreadTracker] - */ - val assertThreadLeaks: Boolean = true, val androidHome: File? = null, val androidGradlePluginVersion: String? = null) @@ -212,9 +207,6 @@ abstract class BaseGradleIT { } add("-PpathToKotlinPlugin=" + File("local-repo").absolutePath) - if (options.assertThreadLeaks) { - add("-P${ThreadTracker.ASSERT_THREAD_LEAKS_PROPERTY}=true") - } options.incremental?.let { add("-Pkotlin.incremental=$it") } options.androidGradlePluginVersion?.let { add("-PandroidToolsVersion=$it")} } diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 9af242e0996..d1806324a76 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -1,15 +1,13 @@ package org.jetbrains.kotlin.gradle import org.junit.Test -import org.jetbrains.kotlin.gradle.BaseGradleIT.Project - class Kotlin2JsGradlePluginIT : BaseGradleIT() { @Test fun testBuildAndClean() { val project = Project("kotlin2JsProject", "1.6") - project.build("build", "-Pkotlin.gradle.noThreadTest=true") { + project.build("build") { assertSuccessful() assertReportExists()