diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java index 36b3a41f4b9e..eddc91bf1e26 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/ClassRenderer.java @@ -39,6 +39,7 @@ import com.intellij.util.StringBuilderSpinAllocator; import com.sun.jdi.*; import org.jdom.Element; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; @@ -147,7 +148,7 @@ public class ClassRenderer extends NodeRendererImpl{ final List fields = refType.allFields(); if (fields.size() > 0) { for (final Field field : fields) { - if (!shouldDisplay(field)) { + if (!shouldDisplay(evaluationContext, objRef, field)) { continue; } children.add(nodeManager.createNode(nodeDescriptorFactory.getFieldDescriptor(parentDescriptor, objRef, field), evaluationContext)); @@ -164,13 +165,15 @@ public class ClassRenderer extends NodeRendererImpl{ builder.setChildren(children); } - private boolean shouldDisplay(Field field) { + private boolean shouldDisplay(EvaluationContext context, @NotNull ObjectReference objInstance, @NotNull Field field) { final boolean isSynthetic = DebuggerUtils.isSynthetic(field); if (!SHOW_SYNTHETICS && isSynthetic) { return false; } - if (isSynthetic && StringUtil.startsWith(field.name(), FieldDescriptorImpl.OUTER_LOCAL_VAR_FIELD_PREFIX)) { - return false; + if (isSynthetic) { + if (objInstance.equals(context.getThisObject()) && StringUtil.startsWith(field.name(), FieldDescriptorImpl.OUTER_LOCAL_VAR_FIELD_PREFIX)) { + return false; + } } if(!SHOW_STATIC && field.isStatic()) { return false; diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluationContext.java b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluationContext.java index 985798194293..e50ef4380968 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluationContext.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluationContext.java @@ -32,4 +32,6 @@ public interface EvaluationContext extends StackFrameContext{ Project getProject(); ClassLoaderReference getClassLoader() throws EvaluateException; + + Value getThisObject(); }