Home / Function/ jmxPid() — netty Function Reference

jmxPid() — netty Function Reference

Architecture documentation for the jmxPid() function in DefaultChannelId.java from the netty codebase.

Function java Buffer Search called by 1

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

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