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.
Umbrella issue for J2ME: Create file, set breakpoint, delete file. Breakpoint stays forever, although it is possible to check if the original file exists and remove it. Persistent over NB restarts. Leads to call allClasses() method BreakpointsEngineListener private void createBreakpointImpls () { Breakpoint[] bs = DebuggerManager.getDebuggerManager ().getBreakpoints (); int i, k = bs.length; for (i = 0; i < k; i++) createBreakpointImpl (bs [i]); }
ClassBasedBreakpoint.checkLoadedClasses(String className, boolean all) is called with all == true in many cases if (all) { i = getVirtualMachine ().allClasses ().iterator (); } else { i = getVirtualMachine ().classesByName (className).iterator (); } while it seems, the call getVirtualMachine().allClasses() is done because only for method match (name, className) which maches for wildcard in package/class name if (pattern.startsWith ("*")) if (pattern.endsWith ("*")) The pattern * is not used many times while doing normal debugging IMHO. Can be the getVirtualMachine ().allClasses () avoided by adding wild card checking before calling this method like this? if (all && (className.startsWith("*")||className.endsWith("*")) ) { i = getVirtualMachine ().allClasses ().iterator (); } else { i = getVirtualMachine ().classesByName (className).iterator (); }
Seems like even worse, that allClasses() is called for zombie breakpoints (for file which does not any more exists and even outside the actual opened project but had set breakpoint before).
FYI: Associated issues: issue #61465 & issue #63595.
Fixing issue #59058 may help as well...
This should be fixed after the partial fix of issue #55663. allClasses() is not called if the className pattern does not begin or end with "*".
Verified ... and Closing all issues resolved into NetBeans 6.7 and earlier.