HI,
This looks like:
JDK-8074569 <https://bugs.openjdk.java.net/browse/JDK-8074569> Update
implementation to use ProcessHandle.current() to get the PID
I'm happy to sponsor.
Roger
On 6/22/2017 12:27 PM, Andrew Leonard wrote:
Thanks Alan,
Yes, you're right the exception swallowing can be removed too.
I'll re-post to serviceability-dev...
Cheers
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leon...@uk.ibm.com
From: Alan Bateman <alan.bate...@oracle.com>
To: Andrew Leonard <andrew_m_leon...@uk.ibm.com>,
core-libs-dev@openjdk.java.net
Date: 22/06/2017 17:21
Subject: Re: Proposal:JdpController.getProcessId() VM compatibility
improvement
This seems a good clean-up, esp. as java.management doesn't open
sun.management to jdk.management.agent so I'll bet this wasn't working
any. I assume the exception swallowing can be removed too.
Can you bring this to serviceability-dev as this is where this code is
maintained?
On 22/06/2017 14:34, Andrew Leonard wrote:
Hello,
I would like to propose the change below to the
JdpController.getProcessId() method which currently uses a reflection
hack
and the VMManagement interface. Instead for JDK9+ we can use the
ProcessHandle.current().getPid() method, which will also allow better
compatibility with other pluggable VMs.
jdk/src/jdk.management.agent/share/classes/sun/management/jdp/JdpController.java
36d35
< import sun.management.VMManagement;
137,146c136,137
< // Get the current process id using a reflection hack
< RuntimeMXBean runtime =
ManagementFactory.getRuntimeMXBean();
< Field jvm = runtime.getClass().getDeclaredField("jvm");
< jvm.setAccessible(true);
<
< VMManagement mgmt = (sun.management.VMManagement)
jvm.get(runtime);
< Method pid_method =
mgmt.getClass().getDeclaredMethod("getProcessId");
< pid_method.setAccessible(true);
< Integer pid = (Integer) pid_method.invoke(mgmt);
< return pid;
---
// Get the current process id
return (int)ProcessHandle.current().getPid();
I'd appreciate any feedback please, and how I would go about obtaining a
sponsor and contributor?
Thanks
Andrew
Andrew Leonard
Java Runtimes Development
IBM Hursley
IBM United Kingdom Ltd
Phone internal: 245913, external: 01962 815913
internet email: andrew_m_leon...@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