RFR 9: 8077350 Process API Updates Implementation Review

Roger Riggs Roger.Riggs at Oracle.com
Wed May 13 14:16:39 UTC 2015


Are there any comments about the use of java.util.Optional in the 
ProcessHandle API?
Or a review of the changes?

Thanks, Roger

On 5/11/2015 11:49 AM, Roger Riggs wrote:
> Please review clarifications and updates to the proposed Precess API.
> A few loose ends in the ProcessHandle API were identified.
> 1) The ProcessHandle.parent() method currently returns null if the 
> parent cannot
> be determined and the ProcessHandle.of(PID) method returns null if the 
> PID does not exist.
> It has been suggested to return an Optional<ProcessHandle> to make
> these methods more flexible and allow a fluent style and work better 
> with streams.
> 2) The behavior of Processhandle.destroy and destroyForcibly are 
> different
> than Process.destroy and destroyForcibly.  Those functions always 
> succeed because
> they are children of the spawning process.
> In contrast, ProcessHandle.destroy and destroyForcible are requests to
> destroy the process and may not succeed due to operating system 
> restrictions such
> as the process not being a child or not having enough privilege.
> The description of the methods needs to be clarified that it is a 
> request to destroy
> and it may not succeed, In that case the destroy and destroyForcibly 
> methods
> should indicate that the request was not successful.  In particular, 
> the caller
> may not want to wait for the process to terminate (its not going to).
> The proposed update is to return an Optional<ProcessHandle> .
> It can be streamed and can take advantage of the conditional 
> operations on the Optional.
> 3) Using Optional is also attractive for the return values of the 
> information
> about a ProcessHandles, since not all values are available from every OS.
> The returns values of Info.command, arguments, startInstant, 
> totalDuration, and user
> are proposed to be updated to return Optional<x>.
> It allows for more compact code and fewer explicit checks for null.
> Please review and comment:
> Webrev:
>    http://cr.openjdk.java.net/~rriggs/webrev-ph/
> javadoc:
>    http://cr.openjdk.java.net/~rriggs/ph-apidraft/
> Diffs of the spec/javadoc from previous draft:
> http://cr.openjdk.java.net/~rriggs/ph-diffs-2015-05-11/overview-summary.html 
> Thanks, Roger

More information about the core-libs-dev mailing list