diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java index ff9194c4b2b7..1c5e7182c6ad 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/DisableGC.java @@ -38,6 +38,10 @@ public class DisableGC implements Evaluator{ return result; } + public Evaluator getDelegate() { + return myDelegate; + } + public Modifier getModifier() { return myDelegate.getModifier(); } diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java index 94875d7f44d3..257bad282949 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/MethodEvaluator.java @@ -61,7 +61,11 @@ public class MethodEvaluator implements Evaluator { public Object evaluate(EvaluationContextImpl context) throws EvaluateException { if(!context.getDebugProcess().isAttached()) return null; DebugProcessImpl debugProcess = context.getDebugProcess(); - final boolean requiresSuperObject = myObjectEvaluator instanceof SuperEvaluator; + + final boolean requiresSuperObject = + myObjectEvaluator instanceof SuperEvaluator || + (myObjectEvaluator instanceof DisableGC && ((DisableGC)myObjectEvaluator).getDelegate() instanceof SuperEvaluator); + final Object object = myObjectEvaluator.evaluate(context); if (LOG.isDebugEnabled()) { LOG.debug("MethodEvaluator: object = " + object);