This is a regression caused by the fix of issue #51387.
If a user evaluates anything that contains a reference to class that is not loaded in the application that is debugged,
Netbeans debugger tries to load that class using Class.forName(). But that call cause that if the current thread tries
to start a new thread after it's resumed, the new thread is not started. The application then does not fully run, even
though all other threads are running.
The result is that user is surprised that the application does not run when debugger tells that it's fully running.
The fix is to remove the fix of issue #51387.
I'll submit a defect for JPDA.
Created attachment 85058 [details]
Steps to reproduce:
1) Add the attached application to a project and add two line breakpoints to lines 24 and 32.
2) Debug the application, thread "main" gets suspended at line 24.
3) Open Debug -> Evaluate Expression, write "new java.util.Random().nextDouble()" into the Evaluator and press Evaluate
button (or CTRL-ENTER).
4) Resume "main" thread in Debugging window or run Continue in 6.8 dev builds.
5) All threads are running, but the second breakpoint is not being hit.
6) Stop debugger, uncomment line 22 and repeat steps 1-5 again. Now the second breakpoint is hit as expected.
Fixed in changeset: 138866:c4838a04bece
The fix has been ported into the release67_fixes repository.
Integrated into 'main-golden', will be available in build *200907230201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Log: #168949 - Do not try to load classes into the debuggee VM, since this breaks debugging.
Verified in 6.7.1 (Build 200907230233)
FYI: I've submitted bug http://bugs.sun.com/view_bug.do?bug_id=6866927 for JDK.