jmxPid() — netty Function Reference
Architecture documentation for the jmxPid() function in DefaultChannelId.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD ae2ec16d_46c0_863e_c3f8_f57eaa932736["jmxPid()"] 20dcb0e9_635a_927e_e4b0_31b79bc84709["DefaultChannelId"] ae2ec16d_46c0_863e_c3f8_f57eaa932736 -->|defined in| 20dcb0e9_635a_927e_e4b0_31b79bc84709 478fc34f_b108_10df_c8a9_c1549c05cf81["defaultProcessId()"] 478fc34f_b108_10df_c8a9_c1549c05cf81 -->|calls| ae2ec16d_46c0_863e_c3f8_f57eaa932736 style ae2ec16d_46c0_863e_c3f8_f57eaa932736 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport/src/main/java/io/netty/channel/DefaultChannelId.java lines 137–180
static int jmxPid(ClassLoader loader) {
String value;
try {
// Invoke java.lang.management.ManagementFactory.getRuntimeMXBean().getName()
Class<?> mgmtFactoryType = Class.forName("java.lang.management.ManagementFactory", true, loader);
Class<?> runtimeMxBeanType = Class.forName("java.lang.management.RuntimeMXBean", true, loader);
Method getRuntimeMXBean = mgmtFactoryType.getMethod("getRuntimeMXBean", EmptyArrays.EMPTY_CLASSES);
Object bean = getRuntimeMXBean.invoke(null, EmptyArrays.EMPTY_OBJECTS);
Method getName = runtimeMxBeanType.getMethod("getName", EmptyArrays.EMPTY_CLASSES);
value = (String) getName.invoke(bean, EmptyArrays.EMPTY_OBJECTS);
} catch (Throwable t) {
logger.debug("Could not invoke ManagementFactory.getRuntimeMXBean().getName(); Android?", t);
try {
// Invoke android.os.Process.myPid()
Class<?> processType = Class.forName("android.os.Process", true, loader);
Method myPid = processType.getMethod("myPid", EmptyArrays.EMPTY_CLASSES);
value = myPid.invoke(null, EmptyArrays.EMPTY_OBJECTS).toString();
} catch (Throwable t2) {
logger.debug("Could not invoke Process.myPid(); not Android?", t2);
value = "";
}
}
int atIndex = value.indexOf('@');
if (atIndex >= 0) {
value = value.substring(0, atIndex);
}
int pid;
try {
pid = Integer.parseInt(value);
} catch (NumberFormatException e) {
// value did not contain an integer.
pid = -1;
}
if (pid < 0) {
pid = ThreadLocalRandom.current().nextInt();
logger.warn("Failed to find the current process ID from '{}'; using a random value: {}", value, pid);
}
return pid;
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does jmxPid() do?
jmxPid() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/DefaultChannelId.java.
Where is jmxPid() defined?
jmxPid() is defined in transport/src/main/java/io/netty/channel/DefaultChannelId.java at line 137.
What calls jmxPid()?
jmxPid() is called by 1 function(s): defaultProcessId.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free