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
- Verify the JDK vendor/version: J9BootLoader targets IBM J9 JVMs whose bootstrap ClassLoader API differs
- Check the method name string passed to getDeclaredMethod for typos or wrong parameter types
- If the JDK is unsupported, use a different BootLoader implementation (e.g. LauncherBootLoader) compatible with the JVM
- 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)