RFR 8183123 : JDP packets have no processId context set
Andrew Leonard
andrew_m_leonard at uk.ibm.com
Fri Jul 7 13:19:33 UTC 2017
Hi Daniel,
Thank you for the review. You actually make a good observation, I had
intended to just change that method implementation to use the
ProcessHandle class, however the pid() method returns a "long" and the
containing method returns an Integer, so it needs "lossy" casting to an
(int) before "boxing" to an Integer. Thinking again about this, given this
is just a private method within this class that is only called from one
place, it seems cleaner to change the private method to return a Long
object, and change the calling instance appropriately. I also see if I
look at the javadoc for ProcessHandle.pid() that it can in "theory" return
UnsupportOperationException, so I have also handled that. I have a new
webrev, which I will ask Christoph to upload...
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
From: "Daniel D. Daugherty" <daniel.daugherty at oracle.com>
To: Andrew Leonard <andrew_m_leonard at uk.ibm.com>,
serviceability-dev at openjdk.java.net
Date: 05/07/2017 21:27
Subject: Re: RFR 8183123 : JDP packets have no processId context
set
On 6/29/17 7:57 AM, Andrew Leonard wrote:
Hi All,
Please can I get some review feedback for my changes for this issue:
https://bugs.openjdk.java.net/browse/JDK-8183123
The webrev patch has been uploaded here:
http://cr.openjdk.java.net/~clanger/webrevs/8183123.0/
src/jdk.management.agent/share/classes/sun/management/jdp/JdpController.java
L137 return (int)ProcessHandle.current().pid();
The return type is Integer. Why not cast to "Integer" instead of
"int"?
test/sun/management/jdp/JdpOnTestCase.java
The test update just verifies that a non-NULL PROCESS_ID is found, but
doesn't verify the format (integer) of the return. Of course, a
platform
independent format for PROCESS_ID might be problematic... For example,
in some versions of Cygwin, I've seen negative values for PIDs...
Thumbs up. If you change the cast I don't need to see a new webrev.
Dan
Essentially the fix entails:
- Replacing invalid process id query logic with call to
ProcessHandle.current().getPid().
- Update testcase to cover the failing scenario. Thus it fails without my
patch, and succeeds with it.
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leonard at uk.ibm.com
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20170707/c0632be3/attachment.html>
More information about the serviceability-dev
mailing list