RFR(s): 8204243: remove Thread.destroy() and Thread.stop(Throwable)

Alan Bateman Alan.Bateman at oracle.com
Sat Jun 2 06:20:14 UTC 2018


On 02/06/2018 06:45, David Holmes wrote:
> On 2/06/2018 11:07 AM, Stuart Marks wrote:
>> On 6/1/18 5:15 PM, David Holmes wrote:
>>> I would expect the CSR that marked them as deprecated for removal, 
>>> also serves for the actual removal. Certainly for VM flags we don't 
>>> do a separate CSR for each phase (deprecation, obsoletion, expiration).
>>
>> Hm. Well, this hasn't been tested for Java SE APIs yet, as most of 
>> the deprecations-for-removal occurred in Java SE 9, before the CSR 
>> was active. Instead, those deprecations went through the (Oracle 
>> internal) CCC process.
>>
>> Now that we're fully on the CSR system, I'd expect that deprecations 
>> (whether or not for removal) and removals of Java SE APIs would have 
>> separate CSR requests. The reason is that adding or changing a 
>> deprecation annotation is a spec change, and removing the API is a 
>> distinct spec change. They also occur in different releases.
>
> Good points. Though given the annotation is on the method being 
> removed it's really only one spec change.
Adding @Deprecated(forRemoval=true) in one release and then removing the 
element in a later release has to be tracked as two spec changes, and 
thus two CSRs. There may be more steps of course. In the case of 
Thread.stop(Throwable) under discussion here, and several 
SecurityManager methods, the methods were "degraded" (to always throw an 
exception or only check AllPermission in the case of the SM methods) 
before removal. So that's another intermediate spec change that has to 
be tracked via the CSR.

-Alan


More information about the core-libs-dev mailing list