From 555d1f5dfa2401f9b52a1a5c4ef36e863648108b Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 31 Mar 2010 15:43:45 +0400 Subject: [PATCH] IDEA-53403 GroovyHotSwap Plugin causes Debugger Session to fail if jdk < 1.5 --- plugins/groovy/hotswap/groovy-hotswap.iml | 1 + .../groovy/debugger/GroovyHotSwapper.java | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/groovy/hotswap/groovy-hotswap.iml b/plugins/groovy/hotswap/groovy-hotswap.iml index 3b7925eaa87c..f19c4c50dad1 100644 --- a/plugins/groovy/hotswap/groovy-hotswap.iml +++ b/plugins/groovy/hotswap/groovy-hotswap.iml @@ -16,6 +16,7 @@ + diff --git a/plugins/groovy/hotswap/pluginSrc/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java b/plugins/groovy/hotswap/pluginSrc/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java index 98d46dff20b9..a1813415f96b 100644 --- a/plugins/groovy/hotswap/pluginSrc/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java +++ b/plugins/groovy/hotswap/pluginSrc/org/jetbrains/plugins/groovy/debugger/GroovyHotSwapper.java @@ -8,6 +8,8 @@ import com.intellij.execution.executors.DefaultDebugExecutor; import com.intellij.execution.runners.JavaProgramPatcher; import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.LanguageLevelProjectExtension; +import com.intellij.pom.java.LanguageLevel; import com.intellij.psi.search.FilenameIndex; import com.intellij.util.PathUtil; import org.jetbrains.plugins.groovy.GroovyFileTypeLoader; @@ -52,7 +54,20 @@ public class GroovyHotSwapper extends JavaProgramPatcher { return; } - if (configuration instanceof RunConfiguration && containsGroovyClasses(((RunConfiguration)configuration).getProject())) { + if (!(configuration instanceof RunConfiguration)) { + return; + } + + final Project project = ((RunConfiguration)configuration).getProject(); + if (project == null) { + return; + } + + if (LanguageLevelProjectExtension.getInstance(project).getLanguageLevel().compareTo(LanguageLevel.JDK_1_5) <= 0) { + return; + } + + if (containsGroovyClasses(project)) { javaParameters.getVMParametersList().add("-javaagent:" + getAgentJarPath()); } }