From 0905a9053862402b34e0ff326b20c36d8b94d55c Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Fri, 15 Mar 2024 10:09:02 +0100 Subject: [PATCH] fix(gradle): Only register a `ProgressListener` in debug log mode Not always registering a `ProgressListener` that, depening on the log level, eventually does not nothing is good practice anyway, and it helps to circumvent a bug with Gradle 8.5 [1] when analyzing such projects. [1]: https://github.com/gradle/gradle/issues/28464 Signed-off-by: Sebastian Schuberth --- .../gradle-inspector/src/main/kotlin/GradleInspector.kt | 6 +++++- .../package-managers/gradle/src/main/kotlin/Gradle.kt | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/package-managers/gradle-inspector/src/main/kotlin/GradleInspector.kt b/plugins/package-managers/gradle-inspector/src/main/kotlin/GradleInspector.kt index 8a1b9a8e37b3..d796df482b1a 100644 --- a/plugins/package-managers/gradle-inspector/src/main/kotlin/GradleInspector.kt +++ b/plugins/package-managers/gradle-inspector/src/main/kotlin/GradleInspector.kt @@ -160,7 +160,11 @@ class GradleInspector( // then block execution of the plugin until a remote debug session is attached to port 5005 (by default), // also see https://docs.gradle.org/current/userguide/troubleshooting.html#sec:troubleshooting_build_logic. val model = connection.model(OrtDependencyTreeModel::class.java) - .addProgressListener(ProgressListener { logger.debug { it.displayName } }) + .apply { + if (logger.delegate.isDebugEnabled) { + addProgressListener(ProgressListener { logger.debug(it.displayName) }) + } + } .setJvmArguments(jvmArgs) .setStandardOutput(stdout) .setStandardError(stderr) diff --git a/plugins/package-managers/gradle/src/main/kotlin/Gradle.kt b/plugins/package-managers/gradle/src/main/kotlin/Gradle.kt index 12db8fefe9de..f57e3acb4234 100644 --- a/plugins/package-managers/gradle/src/main/kotlin/Gradle.kt +++ b/plugins/package-managers/gradle/src/main/kotlin/Gradle.kt @@ -212,10 +212,13 @@ class Gradle( val stdout = ByteArrayOutputStream() val stderr = ByteArrayOutputStream() - val dependencyTreeModel = connection - .model(OrtDependencyTreeModel::class.java) + val dependencyTreeModel = connection.model(OrtDependencyTreeModel::class.java) + .apply { + if (logger.delegate.isDebugEnabled) { + addProgressListener(ProgressListener { logger.debug(it.displayName) }) + } + } .addJvmArguments(jvmArgs) - .addProgressListener(ProgressListener { logger.debug { it.displayName } }) .setStandardOutput(stdout) .setStandardError(stderr) .withArguments("-Duser.home=${Os.userHomeDirectory}", "--init-script", initScriptFile.path)