pinpoint-apm/pinpoint · error · IllegalStateException
() access fail
Error message
() access fail
What it means
Guard in LauncherBootLoader.findBootstrapClassOrNull: reflective invocation of FIND_BOOTSTRAP_CLASS_OR_NULL threw IllegalAccessException — the cached Method object is not accessible from the caller (setAccessible failed or access was revoked), so the bootstrap class load is aborted.
Solutions
- Ensure findBootstrapClassOrNull.setAccessible(true) succeeded when the Method was cached
- Check for a SecurityManager or module access rules denying reflective access to java.lang.ClassLoader privates
- Use a JDK version where this private API is accessible, or upgrade the agent
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:95 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/a23965ce20425147.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java:95
private static URLClassPath getBootstrapClassPath() {
return Launcher.getBootstrapClassPath();
}
@Override
public URL findResource(String name) {
final Resource res = bootstrapClassPath.getResource(name);
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;View on GitHub (pinned to 744c3d3075)