提交 b756c93c 编写于 作者: C clanger

8183123: JDP packets have no processId context set

Reviewed-by: dcubed, clanger
Contributed-by: andrew_m_leonard@uk.ibm.com
上级 e92e481c
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -33,6 +33,7 @@ import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.UnsupportedOperationException;
import sun.management.VMManagement;
/**
......@@ -132,19 +133,11 @@ public final class JdpController {
}
// Get the process id of the current running Java process
private static Integer getProcessId() {
private static Long getProcessId() {
try {
// 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;
} catch(Exception ex) {
// Get the current process id
return ProcessHandle.current().pid();
} catch(UnsupportedOperationException ex) {
return null;
}
}
......@@ -206,7 +199,7 @@ public final class JdpController {
packet.setBroadcastInterval(Integer.toString(pause));
// Set process id
Integer pid = getProcessId();
Long pid = getProcessId();
if (pid != null) {
packet.setProcessId(pid.toString());
}
......
/*
* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -31,6 +31,7 @@
import java.net.SocketTimeoutException;
import java.util.Map;
import static jdk.testlibrary.Asserts.assertNotEquals;
public class JdpOnTestCase extends JdpTestCase {
......@@ -58,6 +59,7 @@ public class JdpOnTestCase extends JdpTestCase {
final String jdpName = payload.get("INSTANCE_NAME");
log.fine("Received correct JDP packet #" + String.valueOf(receivedJDPpackets) +
", jdp.name=" + jdpName);
assertNotEquals(null, payload.get("PROCESS_ID"), "Expected payload.get(\"PROCESS_ID\") to be not null.");
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册