On 6/1/18 4:40 PM, David Holmes wrote:
Hi Stuart!

Nooooooo!

Just kidding!

Yaaaaaay!!!!

:-)

Actual removal looks fine but what about the corresponding JDI code:

./jdk.jdi/share/classes/com/sun/jdi/ThreadReference.java

it still has a stop(Throwable) function (it doesn't have the no-arg one!). What happens to it? The JDI functions were never deprecated in line with the Thread functions (suspend/resume/stop).

The ThreadReference javadoc has:

    * @see java.lang.Thread#stop(Throwable)

so will need fixing.

Good catch! I had grepped around the source tree for stuff like this but I had missed this one.

It looks to me like this interface resides on the debugger side of JDWP. I don't know exactly where it's implemented in the target VM, but I imagine it goes through some VM-internal or JDWP implementation interface, not through the target VM's public java.lang.Thread.stop(thr) interface. Is that right? (I'm not that familiar with this area of the system.)

I'm presuming that it doesn't go through j.l.Thread.stop(Throwable) since that method has essentially been non-functional since JDK 8.

I see a couple tests for this in

    test/hotspot/jtreg/vmTestbase/nsk/jdi/ThreadReference/stop

and I can see some evidence in our internal build/test systems that they're still being run, so it looks like these interfaces are still active. As you observe, they haven't been deprecated. There might even be valid uses cases for stopping a thread this way in a debugging situation that aren't valid for applications.

I guess that means the thing to do is to update the documentation to remove the reference to the soon-to-be-deleted Thread.stop(Throwable) but otherwise leave this stuff unchanged.

s'marks

Reply via email to