pinpoint-apm/pinpoint · error · IllegalStateException
() internal error
Error message
() internal error
What it means
Guard in LauncherBootLoader.findBootstrapClassOrNull: the reflective call FIND_BOOTSTRAP_CLASS_OR_NULL.invoke threw InvocationTargetException, meaning the underlying findBootstrapClassOrNull method itself failed inside the JVM; the message prefixes the wrapped internal error cause.
Solutions
- Inspect ex.getCause() to identify the real internal failure inside ClassLoader.findBootstrapClassOrNull
- Verify the class name argument is a valid binary name (no slashes or malformed identifiers)
- Check for classloader corruption or incompatible JVM patches
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:102 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/d5538e374aea6753.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/LauncherBootLoader.java:102
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;
private URLEnumeration(Enumeration<Resource> enumeration) {
this.enumeration = enumeration;
}
public URL nextElement() {
Resource resource = enumeration.nextElement();View on GitHub (pinned to 744c3d3075)