{"record":{"id":"fcb0b15dbf382fe4","repo":"pinpoint-apm/pinpoint","slug":"ex-getmessage","errorCode":null,"errorMessage":"${ex.getMessage()}","messagePattern":"\\$\\{ex\\.getMessage\\(\\)\\}","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/BootstrapCore.java","lineNumber":70,"sourceCode":"    public boolean isBootstrapPackageByInternalName(String internalClassName) {\n        return bootstrapPackage.isBootstrapPackageByInternalName(internalClassName);\n    }\n\n    public InputStream openStream(String internalClassName) {\n        return bootstrapRepository.openStream(internalClassName);\n    }\n\n    public <T> Class<? extends T> loadClass(String className) {\n        try {\n            if (isDebug) {\n                logger.debug(\"loadClass:{}\", className);\n            }\n            return (Class<T>) Class.forName(className, false, bootstrapClassLoader);\n        } catch (ClassNotFoundException ex) {\n            if (isDebug) {\n                logger.debug(\"ClassNotFound {} cl:{}\", ex.getMessage(), bootstrapClassLoader);\n            }\n            throw new RuntimeException(ex.getMessage(), ex);\n        }\n    }\n}\n","sourceCodeStart":52,"sourceCodeEnd":74,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/BootstrapCore.java#L52-L74","documentation":"RuntimeException thrown by BootstrapCore.loadClass when Class.forName on the bootstrap class loader throws ClassNotFoundException. The message is just the original exception message (the missing class name); the cause carries the ClassNotFoundException. It signals that a bootstrap-level class required by instrumentation is not visible to the bootstrap class loader.","triggerScenarios":"loadClass is called for a class that is not present in the bootstrap class loader search path; appendToBootstrapClassLoaderSearch did not include the jar containing the class; the class name is wrong or was renamed.","commonSituations":"Instrumenting JDK classes whose helper classes must be bootstrap-loaded but the jar was not appended; agent upgrade renamed an internal bootstrap class; class name typos in instrumentation configuration.","solutions":["Ensure appendToBootstrapClassLoaderSearch is invoked and the jar containing the class is included","Verify the exact class name and that it exists in the bootstrap jar for the current agent version","Inspect the cause chain (ClassNotFoundException) to confirm which class is missing","Upgrade/rebuild the agent so bootstrap classes match the instrumentation code"],"exampleFix":"// before\nbootstrapCore.loadClass(\"com.bootstrap.MissingHelper\");\n// after\nbootstrapCore.loadClass(\"com.bootstrap.Helper\"); // class present in bootstrap jar","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n    return bootstrapCore.loadClass(className);\n} catch (RuntimeException e) {\n    if (e.getCause() instanceof ClassNotFoundException) {\n        logger.error(\"{} not visible to bootstrap class loader; ensure bootstrap jar is appended\", className, e);\n    }\n    throw e;\n}","preventionTips":["Confirm appendToBootstrapClassLoaderSearch runs before any loadClass call","Keep bootstrap class names in sync across agent modules during refactors","Fail fast at agent startup by preloading all required bootstrap classes"],"tags":["classloader","bootstrap","class-not-found"],"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-14T11:17:12.474Z"}