{"record":{"id":"be4b92dcaf484f65","repo":"pinpoint-apm/pinpoint","slug":"not-found-caused-by","errorCode":null,"errorMessage":" not found Caused by:","messagePattern":" not found Caused by:","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/J9BootLoader.java","lineNumber":67,"sourceCode":"            try {\n                bootstrapClassLoader = ClassLoader.class.getDeclaredField(\"systemClassLoader\");\n            } catch (NoSuchFieldException e2) {\n                throw new IllegalStateException(\"bootstrapClassLoader not found Caused by:\" + e.getMessage() + \", and \" + e2.getMessage(), e2);\n            }\n        }\n        try {\n            bootstrapClassLoader.setAccessible(true);\n            return (ClassLoader) bootstrapClassLoader.get(ClassLoader.class);\n        } catch (IllegalAccessException e) {\n            throw new IllegalStateException(\"bootstrapClassLoader access fail Caused by:\" + e.getMessage(), e);\n        }\n    }\n\n    private static Class<?> getAbstractClassLoader(String className) {\n        try {\n            return Class.forName(className, false, Object.class.getClassLoader());\n        } catch (ClassNotFoundException e) {\n            throw new IllegalStateException(className + \" not found Caused by:\" + e.getMessage(), e);\n        }\n    }\n\n\n    private static Method getMethod(Class<?> bootstrapClassLoader, String methodName, Class<?>... parameterTypes) {\n        try {\n            Method declaredMethod = bootstrapClassLoader.getDeclaredMethod(methodName, parameterTypes);\n            declaredMethod.setAccessible(true);\n            return declaredMethod;\n        } catch (NoSuchMethodException e) {\n            throw new IllegalStateException(methodName + \" not found Caused by:\" + e.getMessage(), e);\n        }\n\n    }\n\n    @Override\n    public Enumeration<URL> findResources(String name) throws IOException {\n        try {","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/J9BootLoader.java#L49-L85","documentation":"getAbstractClassLoader loads an internal classloader abstract/base class by name via Class.forName(className, false, bootstrap-ish loader). If the class is absent on that JVM, it throws IllegalStateException '<className> not found Caused by:...'.","triggerScenarios":"J9BootLoader initialization calls getAbstractClassLoader with a hardcoded internal class name (J9-specific, e.g. 'com.ibm.oti.vm.AbstractClassLoader') that does not exist on the running JVM.","commonSituations":"Running the agent on a JVM that is not IBM J9 (class absent), an OpenJ9 version that removed/renamed the internal class, or stripped/custom runtime images without internal IBM classes.","solutions":["Confirm the JVM is a supported IBM J9 build where the internal class exists","Update Pinpoint agent to a version matching your J9/OpenJ9 internals","Check the Caused-by message to see exactly which class name was probed","Fall back to LauncherBootLoader by running on HotSpot/OpenJDK"],"exampleFix":"// before\n// pinpoint agent on AdoptOpenJDK OpenJ9 0.35 -> com.ibm.oti.vm.AbstractClassLoader missing\n// after\n// run on IBM J9 SDK 8 or switch to OpenJDK HotSpot\njava -version  # verify VM before attaching agent","handlingStrategy":"try-catch","validationCode":"String cls = \"com.ibm.oti.vm.AbstractClassLoader\";\nif (Class.forName(cls, false, Object.class.getClassLoader()) == null) { /* unreachable, CNFE thrown */ }\n// wrap instead:\ntry { Class.forName(cls, false, Object.class.getClassLoader()); } catch (ClassNotFoundException e) { throw new IllegalStateException(\"Not a supported IBM J9 VM\"); }","typeGuard":null,"tryCatchPattern":"try { J9BootLoader bl = createJ9BootLoader(); } catch (IllegalStateException e) { if (e.getMessage().endsWith(\"not found\")) { log.error(\"Unsupported JVM for J9 bootstrap; switching to default loader\"); bl = new LauncherBootLoader(); } else throw e; }","preventionTips":["Verify java.vm.name reports IBM J9 before enabling this path","Keep Pinpoint agent version aligned with your J9/OpenJ9 release","Avoid stripped/custom JRE images lacking internal IBM classes","Watch the Caused-by message to learn the exact class name probed"],"tags":["java","classloader","class-not-found","j9"],"backgroundTag":"class-not-found","analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}