This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Finish action is not enabled in popup menu on running session in Sessions view in Debugger Window. It's regression and automated tests are failing on it.
The latest build where I can reproduce this issue is dev-200309250100.
Is there any activity around this issue? It would be highly appreciated, since automated tests are failing due to this issue. Thanks for (at least) evaluation.
This bug is caused by some regression (incompatible change) in openide/actions. Can you look on this Jesee, please? May be that the problem is in hackly implementation of DebuggerWindow, but in all cases some incompatibility is there.
Reassign back to me if it's my regression, but I do not own actions.
Not only 'Finish' action but also some other actions such as 'Make curent', 'Create Fixed Watch', 'Delete All', 'Disable All', 'Enable All'.
I don't have a time to investigate debugger actions implementations. Other actions works fine, so I guess the problem should be in debugger. Please provide detailed info why your actions are not working first and if you think the problem is in openide/actions provide also the details and just then assign here.
There was a similar problem last week with the execution window - David Konecny did something to fix it. Possibly related?
Please, fix it ASAP because this issue is Q-build stopper.
Well actually I don't know why this would have worked *before*, since the code in debuggercore is wrong. The situation: FinishSessionAction is a CookieAction, requiring SessionCookie. SessionNode implements SessionCookie, and (redundantly and unnecessarily) adds itself to its own CookieSet. SessionNode.lookup.lookup(SessionCookie.class) should give itself, as expected. Now FSA, as is usual, tries to make a context-aware instance. To do this it searches up the component hierarchy to find a Lookup.Provider instance which can supply its context. The first one it finds is a SessionsView, which is a kind of TreeTableExplorerViewSupport. TTEVS implements ExplorerManager.Provider, and it is a TopComponent. TC impl L.P, and the default impl (not overridden here) delegates to the activated nodes. Since TTEVS, unlike e.g. ExplorerPanel, does *not* listen to changes in the ExplorerManager and update the activatedNodes correspondingly, aN is always null. Therefore TTEVS.lookup contains only its ActionMap, no Node instances; therefore FSA is disabled. Should be simple to fix. I am not aware of any incompatibility here; if this code worked before, it was surely accidental.
Fixed in debuggercore/src/org/netbeans/modules/debugger/support/nodes/TreeTableExplorerViewSupport.java rev. 1.17. Responsibility of debuggercore owner to merge to Q-build branch if that is desired.
Please leave a message when fixed in Q-build branch. Thanks.
Integrated to QBE200310150100. Thank you for your help, Jesse.
Sure... I am still curious where the regression comes from, though, if it is in fact in openide. I can't find any applicable changes in CVS from around that time. One thing to note is that DebuggerWindow contains the SessionsView (etc.) and *does* have activatedNodes, set correctly. Nonetheless, the context for the actions is the first Lookup.Provider, which is the SessionsView, so the activatedNodes on any parent component is not relevant. Thinking this might be an incompatibility, I made up a test case (attaching), but it behaves the same in NB 3.5.1 as in a dev build.
Created attachment 11893 [details] Demo that activatedNodes on a nested TC must be set (internal exec) - should print false / false
Created attachment 11894 [details] Patch which caused the regression
The regression was in debuggercore, not openide. Next time check your own CVS logs please! msandor tried to remove a usage of ExplorerPanel, now deprecated. Unfortunately the deprecation message for ExplorerPanel points to ExplorerManager, which gives an incorrect suggestion - see issue #36315.
Verified in dev-200310230100.