pinpoint-apm/pinpoint · error · IllegalStateException

access fail Caused by:

Error message

access fail Caused by:

What it means

Generic guard in J9BootLoader.getMethod: reflection lookup of a bootstrap ClassLoader method (e.g. getResources) via getDeclaredMethod failed with NoSuchMethodException, meaning the IBM J9/JDK VM does not expose the expected method; the message is a sentinel wrapping the underlying cause.

Solutions

  1. Verify the JDK vendor/version: J9BootLoader targets IBM J9 JVMs whose bootstrap ClassLoader API differs
  2. Check the method name string passed to getDeclaredMethod for typos or wrong parameter types
  3. If the JDK is unsupported, use a different BootLoader implementation (e.g. LauncherBootLoader) compatible with the JVM
  4. Inspect the chained NoSuchMethodException message to identify which method lookup failed
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/J9BootLoader.java:88 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/56e36d9e8e40d316. Report an issue: GitHub.

Appendix: source

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


    private static Method getMethod(Class<?> bootstrapClassLoader, String methodName, Class<?>... parameterTypes) {
        try {
            Method declaredMethod = bootstrapClassLoader.getDeclaredMethod(methodName, parameterTypes);
            declaredMethod.setAccessible(true);
            return declaredMethod;
        } catch (NoSuchMethodException e) {
            throw new IllegalStateException(methodName + " not found Caused by:" + e.getMessage(), e);
        }

    }

    @Override
    public Enumeration<URL> findResources(String name) throws IOException {
        try {
            return (Enumeration<URL>) findResources.invoke(bootstrapClassLoader, name);
        } catch (IllegalAccessException e) {
            throw new IllegalStateException("access fail Caused by:" + e.getMessage(), e);
        } catch (InvocationTargetException e) {
            throw new IllegalStateException("invoke fail Caused by:" + e.getMessage(), e);
        }
    }

    @Override
    public URL findResource(String name) {
        try {
            return (URL) findResource.invoke(bootstrapClassLoader, name);
        } catch (IllegalAccessException e) {
            throw new IllegalStateException("access fail Caused by:" + e.getMessage(), e);
        } catch (InvocationTargetException e) {
            throw new IllegalStateException("invoke fail Caused by:" + e.getMessage(), e);
        }
    }

    @Override
    public Class<?> findBootstrapClassOrNull(ClassLoader classLoader, String name) {

View on GitHub (pinned to 744c3d3075)