On 2/06/2018 10:43 AM, Stuart Marks wrote:
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.)

It's a rather complex setup but the backend that does the work is (usually?) JVM TI, which won't go back out through the Java API.


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'm yet to find one :) I pointed out this inconsistency many many years ago but it remains.

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.

Yep that's what I thought too.

Thanks,
David

s'marks

Reply via email to