diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/springloaded/SpringLoadedPositionManagerFactory.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/springloaded/SpringLoadedPositionManagerFactory.java index c76e1c7bdd57..3d7cdf94cf21 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/springloaded/SpringLoadedPositionManagerFactory.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/springloaded/SpringLoadedPositionManagerFactory.java @@ -3,9 +3,6 @@ package org.jetbrains.plugins.groovy.springloaded; import com.intellij.debugger.PositionManager; import com.intellij.debugger.PositionManagerFactory; import com.intellij.debugger.engine.DebugProcess; -import com.intellij.openapi.application.AccessToken; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.psi.JavaPsiFacade; /** * Factory for position manager to debug classes reloaded by com.springsource.springloaded @@ -15,16 +12,16 @@ public class SpringLoadedPositionManagerFactory extends PositionManagerFactory { @Override public PositionManager createPositionManager(final DebugProcess process) { - AccessToken accessToken = ApplicationManager.getApplication().acquireReadActionLock(); try { - JavaPsiFacade facade = JavaPsiFacade.getInstance(process.getProject()); - if (facade.findPackage("com.springsource.loaded") != null || facade.findPackage("org.springsource.loaded") != null) { + if (process.getVirtualMachineProxy().classesByName("com.springsource.loaded.agent.SpringLoadedAgent").size() > 0 + || process.getVirtualMachineProxy().classesByName("org.springsource.loaded.agent.SpringLoadedAgent").size() > 0) { return new SpringLoadedPositionManager(process); } - return null; } - finally { - accessToken.finish(); + catch (Exception ignored) { + // Some problem with virtual machine. } + + return null; } }