From 8df0382e1912ac178257fd049dcbc2ee0bbb7d85 Mon Sep 17 00:00:00 2001 From: "Alexander.Glukhov" Date: Wed, 9 Jul 2025 15:31:27 +0200 Subject: [PATCH] [java-debugger][IDEA-375478] isolated the method of debugger agent setup into a separate method GitOrigin-RevId: 2c87d0778e8beedaaa21bfcc6a24cc9e96e0fa17 --- .../debugger/engine/AsyncStacksUtils.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/AsyncStacksUtils.java b/java/debugger/impl/src/com/intellij/debugger/engine/AsyncStacksUtils.java index d9a39a1aca54..9d381920a5dc 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/AsyncStacksUtils.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/AsyncStacksUtils.java @@ -303,24 +303,29 @@ public final class AsyncStacksUtils { @Nullable Project project, boolean checkJdkVersion, @Nullable Disposable disposable) { - if (!isAgentEnabled()) { - return; - } - String prefix = "-javaagent:"; - ParametersList parametersList = parameters.getVMParametersList(); - if (ContainerUtil.exists(parametersList.getParameters(), p -> p.startsWith(prefix) && p.contains(AGENT_JAR_NAME))) { - return; - } - Sdk jdk = parameters.getJdk(); - if (checkJdkVersion && jdk == null) { - return; - } - JavaSdkVersion sdkVersion = jdk != null ? JavaSdk.getInstance().getVersion(jdk) : null; - if (checkJdkVersion && (sdkVersion == null || !sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7))) { - LOG.warn("Capture agent is not supported for JRE " + sdkVersion); - return; - } + if (isAgentEnabled()) { + String prefix = "-javaagent:"; + ParametersList parametersList = parameters.getVMParametersList(); + if (!ContainerUtil.exists(parametersList.getParameters(), p -> p.startsWith(prefix) && p.contains(AGENT_JAR_NAME))) { + Sdk jdk = parameters.getJdk(); + if (checkJdkVersion && jdk == null) { + return; + } + JavaSdkVersion sdkVersion = jdk != null ? JavaSdk.getInstance().getVersion(jdk) : null; + if (checkJdkVersion && (sdkVersion == null || !sdkVersion.isAtLeast(JavaSdkVersion.JDK_1_7))) { + LOG.warn("Capture agent is not supported for JRE " + sdkVersion); + return; + } + extendParametersForAgent(project, disposable, parametersList, prefix); + } + } + } + + private static void extendParametersForAgent(@Nullable Project project, + @Nullable Disposable disposable, + @NotNull ParametersList parametersList, + @NotNull String prefix) { String agentPath = getAgentArtifactPath(project, disposable); if (agentPath != null) { try (AccessToken ignore = SlowOperations.knownIssue("IDEA-307303, EA-835503")) { @@ -364,9 +369,9 @@ public final class AsyncStacksUtils { } } - // Code runs from IDEA run configuration (code from .class file in out/ directory) @NativePath private static @NotNull String getArtifactPathForDownloadedAgent(@Nullable Project project, @Nullable Disposable disposable) { + // Code runs from IDEA run configuration (code from .class file in out/ directory) try { Path agentArtifactPath = createTemporaryAgentPath(project, disposable);