On Thu, 4 Dec 2025 21:00:41 GMT, Chris Plummer <[email protected]> wrote:

> With JDI tracing enabled, an attempt to trace an event when using 
> SUSPEND_NONE can result in an ObjectCollectedException because the thread is 
> still running and objects that are part of the trace can be collected 
> already. In this case were were dealing with trying to print the thread name 
> for a VirtualThreadEndEvent, and the virtual thread has already exited and 
> been gc'd.
> 
> Tested by running test case before change (verified failure) and after change 
> (50 runs without a failure). Will also run tier1 and tier5 svc just to be 
> sure.

> It would be more complete solution, but even fixing only 
> `EventSetImpl.toString` (for each event, printing event name (or class name 
> of the event) + "" on the exception ) should be good enough

I don't think EventSetImpl.toString() is involved at all, although if called it 
can suffer the same ObjectCollectedException, which would be fixed if the issue 
is addressed in the toString() method of the Event sub-classes instead.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/28666#issuecomment-3614843314

Reply via email to