Summary: | 1.0 -- JSP breakpoints don't get removed | ||
---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Jed Anderson <jed.anderson> |
Component: | Debug | Assignee: | Darin Wright <darin.eclipse> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P1 | ||
Version: | 2.0 | ||
Target Milestone: | 2.0 M6 | ||
Hardware: | PC | ||
OS: | Windows 2000 | ||
Whiteboard: |
Description
Jed Anderson
2001-10-22 19:53:04 EDT
Proposed fix follows. This fixes the reported bug, but may have adverse side effects. I will spend some more time investigating the consequences of this fix. Add the following method to PatternDebugTarget protected void lineBreakpointRemoved(IMarker breakpoint) { if (!PatternDebugModel.isPatternBreakpoint(breakpoint)) { super.lineBreakpointRemoved(breakpoint); return; } List list = removeBreakpointRequests(breakpoint); if (list != null) { //installed breakpoint Iterator iter = list.iterator(); while (iter.hasNext()) { BreakpointRequest request = (BreakpointRequest)iter.next(); try { // cannot delete an expired request if (!isExpired(request)) { getEventRequestManager().deleteEventRequest(request); // disable & remove } } catch (VMDisconnectedException e) { return; } catch (RuntimeException e) { internalError(e); } } } //deferred breakpoint if (!breakpoint.exists()) { //resource no longer exists return; } String name= getPattern(breakpoint); if (name == null) { internalError(ERROR_BREAKPOINT_NO_TYPE); return; } List markers= (List) fDeferredBreakpointsByClass.get(name); if (markers == null) { return; } markers.remove(breakpoint); if (markers.isEmpty()) { fDeferredBreakpointsByClass.remove(name); } } PatternDebugTarget.defer(IMarker, String) did not check the list before adding the marker it was attempting to defer. Adding this check allows breakpoints to be removed: if (!bps.contains(breakpoint)) { bps.add(breakpoint); } Need to ensure the same problem does not exist in 2.0 Reduced severity to normal - not ciritcal for stable Dec 07 build. Fixed in Rollup 1. Need to ensure that we work in 2.0. Fixed in 2.0 Verified by Jay Cagle |