Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 438201

Summary: [display] Display View's Content-assist and Display quirks with inner classes
Product: [Eclipse Project] JDT Reporter: Zorzella Mising name <zorzella>
Component: DebugAssignee: JDT-Debug-Inbox <jdt-debug-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: sarika.sinha
Version: 4.3.2   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard: stalebug

Description Zorzella Mising name CLA 2014-06-25 19:47:43 EDT
Let's talk about content assist first

Reproduce
=========

1. Get the code below.

2. Put the breakpoints where indicated.

3. Debug it. It first hits the breakpoint in the bottom of the file.

4. Open the "Display" view.

5. Type "thing" and Ctrl+Space. You will be presented with the choices (not in this order):

thingOne
THING_TWO
thingThree
thingFour
thingRunnable

So far so good.

6. Continue the execution. It should hit the breakpoint inside the run() method. Again type "thing" and Ctrl+Space in the Display view. It gets completed to "thingSix".

Expected
========

It should have offered all the choices from #5 plus thingFive and thingSix

****************************************************************

In addition to that, the "highlight-and-Display-with-Shift-Ctrl+D" is even more quirky. E.g. if, at the breakpoint from #6, I ask the Display view for the values of these things, I can get thingOne, THING_TWO and thingSix, but for all the others I get messages like:

Evaluation failed. Reason(s):
		thingThree cannot be resolved to a variable

****************************************************************

public class Display {

  final String thingOne = "thingOne";
  static final String THING_TWO = "THING_TWO";
  
  public static void main(String[] args) {
    new Display().go("thingThree");
  }
  
  void go(final String thingThree) {
    
    final String thingFour = "thingFour";
    
    final Runnable thingRunnable = new Runnable() {

      final String thingFive = "thingFive";
      
      @Override
      public void run() {
        final String thingSix = "thingSix";
        // PUT A BREAKPOINT HERE
        System.out.println(String.format(
            "%s,%s,%s,%s,%s,%s",
            thingOne, THING_TWO, thingThree, thingFour, thingFive, thingSix));
      }
    };
    
    // PUT A BREAKPOINT HERE
    thingRunnable.run();
  }
}
Comment 1 Sarika Sinha CLA 2014-06-26 09:30:19 EDT
Able to reproduce this.
Comment 2 Eclipse Genie CLA 2019-03-23 11:40:21 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.