IDEA-139945 - fixes after review

This commit is contained in:
Egor.Ushakov
2015-05-14 17:12:19 +03:00
parent 547b3ab02a
commit d9be1f18f9
2 changed files with 9 additions and 6 deletions
@@ -20,6 +20,7 @@
*/
package com.intellij.debugger.engine.evaluation.expression;
import com.intellij.Patches;
import com.intellij.debugger.DebuggerBundle;
import com.intellij.debugger.engine.DebugProcess;
import com.intellij.debugger.engine.DebugProcessImpl;
@@ -30,7 +31,6 @@ import com.intellij.debugger.impl.ClassLoadingUtils;
import com.intellij.debugger.impl.DebuggerUtilsEx;
import com.intellij.debugger.jdi.VirtualMachineProxyImpl;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.rt.debugger.DefaultMethodInvoker;
import com.sun.jdi.*;
@@ -48,9 +48,6 @@ public class MethodEvaluator implements Evaluator {
private final boolean myCheckDefaultInterfaceMethod;
private final boolean myMustBeVararg;
// see IDEA-139945, corresponding jdk bug was fixed in 8u45
private static boolean ourUseDefaultInvoker = !SystemInfo.isJavaVersionAtLeast("1.8.0_40");
public MethodEvaluator(Evaluator objectEvaluator,
JVMName className,
String methodName,
@@ -184,7 +181,7 @@ public class MethodEvaluator implements Evaluator {
return debugProcess.invokeInstanceMethod(context, objRef, jdiMethod, args, ObjectReference.INVOKE_NONVIRTUAL);
}
// fix for default methods in interfaces, see IDEA-124066
if (ourUseDefaultInvoker && myCheckDefaultInterfaceMethod && jdiMethod.declaringType() instanceof InterfaceType) {
if (Patches.JDK_BUG_ID_8042123 && myCheckDefaultInterfaceMethod && jdiMethod.declaringType() instanceof InterfaceType) {
try {
return invokeDefaultMethod(debugProcess, context, objRef, myMethodName);
} catch (EvaluateException e) {