diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/RequestHint.java b/java/debugger/impl/src/com/intellij/debugger/engine/RequestHint.java index e3d88c4eeb0e..8d59c3880d4c 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/RequestHint.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/RequestHint.java @@ -25,8 +25,6 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.List; - public class RequestHint { public static final int STOP = 0; private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.engine.RequestHint"); @@ -63,7 +61,7 @@ public class RequestHint { return false; } final DebugProcessImpl process = context.getDebugProcess(); - if (!signatureMatches(method, process)) { + if (!signatureMatches(method, myTargetMethodSignature.getName(process))) { return false; } final ObjectReference thisObject = frameProxy.thisObject(); @@ -76,18 +74,13 @@ public class RequestHint { return true; } - private boolean signatureMatches(Method method, DebugProcessImpl process) throws EvaluateException { - final String expectedSignature = myTargetMethodSignature.getName(process); + private static boolean signatureMatches(Method method, final String expectedSignature) throws EvaluateException { if (expectedSignature.equals(method.signature())) { return true; } // check if there are any bridge methods that match - final List methods = method.declaringType().methods(); - for (Method m : methods) { - if (m == method) { - continue; - } - if (myTargetMethodName.equals(m.name()) && m.isBridge() && expectedSignature.equals(m.signature())) { + for (Method candidate : method.declaringType().methodsByName(method.name())) { + if (candidate != method && candidate.isBridge() && expectedSignature.equals(candidate.signature())) { return true; } }