RFR(s): 8204243: remove Thread.destroy() and Thread.stop(Throwable)
David Holmes
david.holmes at oracle.com
Thu Jun 7 02:13:32 UTC 2018
On 7/06/2018 7:58 AM, Stuart Marks wrote:
> Serguei, great! Thanks.
>
> All, I've updated the webrev to with changes to
> threadPrimitiveDeprecation.html to remove the sections that mention the
> removed methods.
That reads much better!
Thanks,
David
> http://cr.openjdk.java.net/~smarks/reviews/8204243/webrev.2/
>
> s'marks
>
>
> On 6/6/18 2:37 PM, serguei.spitsyn at oracle.com wrote:
>> Stuart,
>>
>> Thank you for explanation!
>> I'm Okay with the fix it is now.
>>
>> Thanks,
>> Serguei
>>
>>
>> On 6/6/18 14:02, Stuart Marks wrote:
>>> On 6/6/18 10:58 AM, serguei.spitsyn at oracle.com wrote:
>>>> But the fix below is not clear to me:
>>>>
>>>> http://cr.openjdk.java.net/~smarks/reviews/8204243/webrev.1/src/hotspot/share/prims/jvmti.xml.udiff.html
>>>> <function id="StopThread" num="7">
>>>> <synopsis>Stop Thread</synopsis>
>>>> <description>
>>>> - Send the specified asynchronous exception to the specified thread
>>>> - (similar to <code>java.lang.Thread.stop</code>).
>>>> + Send the specified asynchronous exception to the specified thread.
>>>> Normally, this function is used to kill the specified thread with an
>>>> - instance of the exception <code>ThreadDeath</code>.
>>>> + instance of the exception <code>ThreadDeath</code>, similar to
>>>> + <code>java.lang.Thread.stop</code>.
>>>> </description>
>>>> A reference to the java.lang.Thread.stop has been removed in one
>>>> place and added in another.
>>>> I thought, we wanted to get rid of these references in the spec.
>>>> Do I miss anything? Could you, explain this a little bit?
>>> Sure. The current state (through JDK 10) is that there two APIs:
>>>
>>> 1. Thread.stop(Throwable)
>>> 2. Thread.stop() // no-arg
>>>
>>> They are both deprecated, but only (1) is deprecated for removal, and
>>> it's the one being removed by this changeset. Method (2) will remain
>>> in the platform for the forseeable future.
>>>
>>> Method (1) causes the target thread asynchronously to throw the
>>> argument, which can be an instance of any subtype of Throwable.
>>> Method (2) causes the target thread to throw ThreadDeath (a subtype
>>> of Error) asynchronously.
>>>
>>> The wording in the JVMTI doc isn't terribly explicit. The original
>>> wording actually means "similar to Thread.stop(Throwable)" that is
>>> method (1). My rewording places the mention of Thread.stop into the
>>> context of throwing ThreadDeath, implying method (2). Since that will
>>> be the only Thread.stop method remaining, there's no ambiguity. So
>>> yes, the wording change looks odd, but there is a subtle shift in the
>>> meaning, and I think the meaning is clear after (1) has been removed.
>>>
>>> But I can remove the "similar to Thread.stop" bit if you prefer.
>>>
>>> s'marks
>>>>
>>>> Thanks,
>>>> Serguei
>>>>
>>>> On 6/5/18 17:05, Stuart Marks wrote:
>>>>> [adding serviceability-dev]
>>>>>
>>>>> Hi serviceability folks,
>>>>>
>>>>> I'm in the process of removing Thread.destroy() and
>>>>> Thread.stop(Throwable) from the Java SE API. Alan and David have
>>>>> pointed out that there are some cross-references to
>>>>> Thread.stop(Throwable) in the JDWP and JVMTI specs, as well as in
>>>>> the JDI ThreadReference API. I've adjusted the relevant files.
>>>>>
>>>>> See please review this updated webrev:
>>>>>
>>>>> http://cr.openjdk.java.net/~smarks/reviews/8204243/webrev.1/
>>>>>
>>>>> For context, please see the full review thread on core-libs-dev:
>>>>>
>>>>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-June/053536.html
>>>>>
>>>>>
>>>>>
>>>>> On 6/4/18 11:11 PM, Alan Bateman wrote:
>>>>>> The source file that is used to generate the JDWP protocol code
>>>>>> and the spec is in make/data/jdwp/jdwp.spec. The JVM TI spec is at
>>>>>> src/hotspot/share/prims/jvmti.xml. It should be okay to skip those
>>>>>> for this change-set, assuming it is followed up quickly with
>>>>>> another change-set to update those specs.
>>>>>
>>>>> OK. I took a look at those other files and they seem simple enough
>>>>> to update as part of this changeset. If there aren't any objections
>>>>> from anyone, might as well get this all done at once.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> s'marks
>>>>
>>>
>>
>
More information about the serviceability-dev
mailing list