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

Bug 298946

Summary: [breakpoints] Condition detail pane remained after removing last breakpoint from view
Product: [Eclipse Project] JDT Reporter: Darin Wright <darin.eclipse>
Component: DebugAssignee: JDT-Debug-Inbox <jdt-debug-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: curtis.windatt.public, Michael_Rennie
Version: 3.6   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard: stalebug
Attachments:
Description Flags
patch
none
cheese none

Description Darin Wright CLA 2010-01-06 09:38:43 EST
I "removed all" breakpoints from the breakpoints view when the detail pane was displaying the condition editor for a Java line breakpoint. The detail pane remained, and the check box was editable after the fact. Found the following in my log:

java.lang.NullPointerException
at org.eclipse.jdt.internal.ui.text.java.JavaAutoIndentStrategy.computeSmartMode(JavaAutoIndentStrategy.java:1275)
at org.eclipse.jdt.internal.ui.text.java.JavaAutoIndentStrategy.clearCachedValues(JavaAutoIndentStrategy.java:1265)
at org.eclipse.jdt.internal.ui.text.java.JavaAutoIndentStrategy.customizeDocumentCommand(JavaAutoIndentStrategy.java:1210)
at org.eclipse.jface.text.TextViewer.customizeDocumentCommand(TextViewer.java:3744)
at org.eclipse.jface.text.TextViewer.handleVerifyEvent(TextViewer.java:3774)
at org.eclipse.jface.text.TextViewer$TextVerifyListener.verifyText(TextViewer.java:433)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1050)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1074)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1059)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:773)
at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:6715)
at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7554)
at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2447)
at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5910)
at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5940)
at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5634)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1050)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1074)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1059)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1096)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1505)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4060)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:352)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3952)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:348)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4678)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2437)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3522)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2407)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2371)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2220)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:367)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:611)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:566)
at org.eclipse.equinox.launcher.Main.run(Main.java:1363)
Comment 1 Darin Wright CLA 2010-01-20 22:19:40 EST
Created attachment 156754 [details]
patch
Comment 2 Darin Wright CLA 2010-01-20 22:20:07 EST
Fixed. Please verify, Mike.
Comment 3 Michael Rennie CLA 2010-01-21 11:55:33 EST
It feels awkward to remove all breakpoints and still see a detail pane (with widgets). I think it would better if the pane was removed instead of just having its controls disabled.
Comment 4 Michael Rennie CLA 2010-01-21 12:00:05 EST
Created attachment 156818 [details]
cheese

I also found that if you re-add a breakpoint to the view (after removing them all) the widgets re-enable when nothing in the view is selected.
Comment 5 Darin Wright CLA 2010-01-21 12:01:24 EST
(In reply to comment #3)
> It feels awkward to remove all breakpoints and still see a detail pane (with
> widgets). I think it would better if the pane was removed instead of just
> having its controls disabled.

This is actually a design point of the detail pane manager. The pane doesn't
change type unless the input changes to need a different type. The variables
view does the same thing - except you don't notice it because it's just a blank
text widget. If it was removed - you'd see the "no details available".
Comment 6 Darin Wright CLA 2010-01-21 12:02:31 EST
(In reply to comment #4)
> Created an attachment (id=156818) [details]
> cheese
> I also found that if you re-add a breakpoint to the view (after removing them
> all) the widgets re-enable when nothing in the view is selected.

This is covered by  bug 300293, which is the selection issue we're seeing from the single cell selection in the variables view.
Comment 7 Darin Wright CLA 2010-01-21 12:03:28 EST
(In reply to comment #5)
> (In reply to comment #3)
> > It feels awkward to remove all breakpoints and still see a detail pane (with
> > widgets). I think it would better if the pane was removed instead of just
> > having its controls disabled.
> This is actually a design point of the detail pane manager. The pane doesn't
> change type unless the input changes to need a different type. The variables
> view does the same thing - except you don't notice it because it's just a blank
> text widget. If it was removed - you'd see the "no details available".


I'd prefer to open a new bug for this, if you want, since it changes detail pane behavior in all views, not just the breakpoints view.
Comment 8 Michael Rennie CLA 2010-01-21 12:08:55 EST
(In reply to comment #5)

>  If it was removed - you'd see the "no details available".

That is exactly what I would expect to happen.
Comment 9 Darin Wright CLA 2010-03-24 14:46:19 EDT
Nothing planned for 3.6. The detail pane infrastructure has always left the existing detail pane behind - this is to avoid re-creating a new (possibly identical) detail pane the next time something is added/selected in the view. This was less noticeable with the variables view, as the detail pane is a white text viewer that looks the same when present/missing.
Comment 10 Eclipse Genie CLA 2020-02-18 13:32:45 EST
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. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. 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.