{"record":{"id":"d1cc11525499ae9c","repo":"pinpoint-apm/pinpoint","slug":"classloader-findbootstrapclassornull-api-not-found","errorCode":null,"errorMessage":"ClassLoader.findBootstrapClassOrNull api not found","messagePattern":"ClassLoader\\.findBootstrapClassOrNull api not found","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java","lineNumber":66,"sourceCode":"        // openjdk7 : success\n        // openjdk6 : fail (findBootstrapClass0)\n        NoSuchMethodException rootException;\n        try {\n            Method findBootstrapClassOrNull = ClassLoader.class.getDeclaredMethod(\"findBootstrapClassOrNull\", String.class);\n            findBootstrapClassOrNull.setAccessible(true);\n            return findBootstrapClassOrNull;\n        } catch (NoSuchMethodException ex) {\n            rootException = ex;\n        }\n        try {\n            // for openjdk6\n            Method findBootstrapClass0 = ClassLoader.class.getDeclaredMethod(\"findBootstrapClass0\", String.class);\n            findBootstrapClass0.setAccessible(true);\n            return findBootstrapClass0;\n        } catch (NoSuchMethodException ignored) {\n            // skip\n        }\n        throw new IllegalStateException(\"ClassLoader.findBootstrapClassOrNull api not found\", rootException);\n    }\n\n    static {\n        // preload\n        new URLEnumeration(null);\n    }\n\n    LauncherBootLoader() {\n    }\n\n    private static URLClassPath getBootstrapClassPath() {\n        return Launcher.getBootstrapClassPath();\n    }\n\n    @Override\n    public URL findResource(String name) {\n        final Resource res = bootstrapClassPath.getResource(name);\n        if (res == null) {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java#L48-L84","documentation":"Fires in findBootstrapClassOrNullMethod when neither ClassLoader.findBootstrapClassOrNull (OpenJDK 7+) nor the legacy findBootstrapClass0 (OpenJDK 6) can be found via reflection: the running JDK exposes neither private method, so the bootstrap class lookup cannot be wired up.","triggerScenarios":"Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java:66 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Run Pinpoint on a supported JDK (OpenJDK 6+ or a JVM exposing findBootstrapClassOrNull)","Upgrade the agent to a version supporting your JDK's classloader internals","Verify no security manager or JPMS strong encapsulation blocks getDeclaredMethod on java.lang.ClassLoader"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}