pinpoint-apm/pinpoint · error · IllegalStateException

() internal error

Error message

() internal error 

What it means

Guard in LauncherBootLoader.findBootstrapClassOrNull: the reflective call FIND_BOOTSTRAP_CLASS_OR_NULL.invoke threw InvocationTargetException, meaning the underlying findBootstrapClassOrNull method itself failed inside the JVM; the message prefixes the wrapped internal error cause.

Solutions

  1. Inspect ex.getCause() to identify the real internal failure inside ClassLoader.findBootstrapClassOrNull
  2. Verify the class name argument is a valid binary name (no slashes or malformed identifiers)
  3. Check for classloader corruption or incompatible JVM patches
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java:102 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07). Data as JSON: /api/errors/d5538e374aea6753. Report an issue: GitHub.

Appendix: source

Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java:102

        if (res == null) {
            return null;
        }
        return res.getURL();
    }

    @Override
    public Class<?> findBootstrapClassOrNull(ClassLoader classLoader, String name) {
        try {
            return (Class<?>) FIND_BOOTSTRAP_CLASS_OR_NULL.invoke(classLoader, name);
        } catch (IllegalAccessException ex) {
            throw new IllegalStateException(FIND_BOOTSTRAP_CLASS_OR_NULL.getName() + "() access fail " + ex.getMessage(), ex);
        } catch (InvocationTargetException ex) {
            final Throwable cause = ex.getCause();
            if (cause instanceof ClassNotFoundException) {
                // fix openjdk6
                return null;
            }
            throw new IllegalStateException(FIND_BOOTSTRAP_CLASS_OR_NULL.getName() + "() internal error " + ex.getMessage(), ex);
        }
    }

    @Override
    public Enumeration<URL> findResources(String name) throws IOException {
        final Enumeration<Resource> enumeration = bootstrapClassPath.getResources(name);
        return new URLEnumeration(enumeration);
    }

    private static class URLEnumeration implements Enumeration<URL> {
        private final Enumeration<Resource> enumeration;

        private URLEnumeration(Enumeration<Resource> enumeration) {
            this.enumeration = enumeration;
        }

        public URL nextElement() {
            Resource resource = enumeration.nextElement();

View on GitHub (pinned to 744c3d3075)