RFR 9: 8077350 Process API Updates Implementation Review

Anthony Vanelverdinghe anthony.vanelverdinghe at gmail.com
Sat Apr 11 09:00:14 UTC 2015

Hi Roger

In my opinion, the method "supportsDestroyForcibly" is unintuitive, for 
the following 2 reasons:

- it's named "supportsXxx", where Xxx is the name of a method in the 
same class. So as a user of this API, I would intuitively assume that 
"supportsDestroyForcibly" is related to "destroyForcibly", and means 
whether or not "destroyForcibly" actually forcibly terminates the process.

- "supports" has a positive connotation. However, if 
"supportsDestroyForcibly" returns true, this means that the 
implementation of "destroy" is forcible. And "destroyForcibly" either 
invokes "destroy" (default implementation) or is overridden with a 
compliant implementation. So in other words: if 
"supportsDestroyForcibly" returns true, it's impossible to allow the 
process to shut down cleanly. This, in my opinion, is a bad thing, so 
the method indicating this behavior should not start with "supports".

Therefore I would like to propose to replace "supportsDestroyForcibly" 
with "supportsDestroy", which returns the negation of what's currently 
returned by "supportsDestroyForcibly".

Another question I have is: what happens if "destroy" or 
"destroyForcibly" are called on processes other than the current process 
& its children, i.e. a process that is in "allProcesses" but isn't 
"current" &  isn't in "allChildren" (e.g. the parent process of the 
current process)?

Kind regards,

On 9/04/2015 22:00, Roger Riggs wrote:
> Please review the API and implementation of the Process API Updates
> described inJEP 102 
> <https://bugs.openjdk.java.net/browse/JDK-8046092>. Please review and 
> comment by April 23rd.
> The recommendation to make ProcessHandle an interface is included
> allowing the new functions to be extended by Process subclasses.
> The implementation covers all functions on Unix, Windows, Solaris, and 
> Mac OS X.
> The API doc: http://cr.openjdk.java.net/~rriggs/ph-apidraft/
> The webrev: http://cr.openjdk.java.net/~rriggs/webrev-ph
> Issue: JDK-8077350 <https://bugs.openjdk.java.net/browse/JDK-8077350> 
> Process API Updates Implementation
> The code is in the jdk9 sandbox on branch JDK-8046092-branch.
> Please review and comment, Roger

More information about the core-libs-dev mailing list