From f0f28abbc56fcbc65614854602d2f4baf0d9c131 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Fri, 17 May 2019 14:06:24 +0300 Subject: [PATCH] Gradle: catch UnsupportedMethodException in favour of UnsupportedVersionException which has more clear description GitOrigin-RevId: 69a9bfb480ca98b8f0ff5a06f9975e9c1e9a9b83 --- .../execution/GradleExecutionHelper.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java index 59a13c784664..aa29fc7c6930 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/execution/GradleExecutionHelper.java @@ -26,6 +26,8 @@ import org.gradle.process.internal.JvmOptions; import org.gradle.tooling.*; import org.gradle.tooling.events.OperationType; import org.gradle.tooling.internal.consumer.DefaultGradleConnector; +import org.gradle.tooling.model.BuildIdentifier; +import org.gradle.tooling.model.UnsupportedMethodException; import org.gradle.tooling.model.build.BuildEnvironment; import org.gradle.util.GradleVersion; import org.jetbrains.annotations.ApiStatus; @@ -115,7 +117,8 @@ public class GradleExecutionHelper { if (buildEnvironment != null) { // the BuildEnvironment jvm arguments of the main build should be used for the 'buildSrc' import // to avoid spawning of the second gradle daemon - List buildJvmArguments = "buildSrc".equals(buildEnvironment.getBuildIdentifier().getRootDir().getName()) + BuildIdentifier buildIdentifier = getBuildIdentifier(buildEnvironment); + List buildJvmArguments = buildIdentifier == null || "buildSrc".equals(buildIdentifier.getRootDir().getName()) ? ContainerUtil.emptyList() : buildEnvironment.getJava().getJvmArguments(); merged = mergeJvmArgs(settings.getServiceDirectory(), buildJvmArguments, jvmArgs); @@ -173,7 +176,14 @@ public class GradleExecutionHelper { operation.setJavaHome(new File(javaHome)); } - String buildRootDir = buildEnvironment == null ? null : buildEnvironment.getBuildIdentifier().getRootDir().getPath(); + String buildRootDir; + if (buildEnvironment == null) { + buildRootDir = null; + } + else { + BuildIdentifier buildIdentifier = getBuildIdentifier(buildEnvironment); + buildRootDir = buildIdentifier == null ? null : buildIdentifier.getRootDir().getPath(); + } GradleProgressListener gradleProgressListener = new GradleProgressListener(listener, id, buildRootDir); operation.addProgressListener((ProgressListener)gradleProgressListener); operation.addProgressListener(gradleProgressListener, @@ -189,6 +199,16 @@ public class GradleExecutionHelper { } } + @Nullable + private static BuildIdentifier getBuildIdentifier(@NotNull BuildEnvironment buildEnvironment) { + try { + return buildEnvironment.getBuildIdentifier(); + } + catch (UnsupportedMethodException ignore) { + } + return null; + } + private static void setupEnvironment(@NotNull LongRunningOperation operation, @NotNull GradleExecutionSettings settings, @Nullable String gradleVersion,