pinpoint-apm/pinpoint · error · IllegalStateException
J9BootLoader create fail Caused by:
Error message
J9BootLoader create fail Caused by:
What it means
BootLoaderFactory.newBootLoader picks J9BootLoader on IBM J9 VMs; if instantiating J9BootLoader raises a linkage Error (missing classes/fields specific to the J9 internals it reflects on), it rethrows as IllegalStateException 'J9BootLoader create fail Caused by:...'.
Source
Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/classloader/BootLoaderFactory.java:39
/**
* @author Woonduk Kang(emeroad)
*/
public final class BootLoaderFactory {
private static final boolean isJ9Vm = isJ9VM();
private BootLoaderFactory() {
}
public static BootLoader newBootLoader() {
if (isJ9Vm) {
try {
return new J9BootLoader();
} catch (Error linkageError) {
// TODO log
throw new IllegalStateException("J9BootLoader create fail Caused by:" + linkageError.getMessage(), linkageError);
}
}
return new LauncherBootLoader();
}
private static boolean isJ9VM() {
JvmType jvmType = JvmUtils.getType();
return jvmType == JvmType.IBM;
}
}
View on GitHub (pinned to 744c3d3075)
Solutions
- Verify the J9/OpenJ9 version against the agent's supported matrix and upgrade or downgrade the JVM
- Check the Caused-by message to identify the missing class and whether the agent jar is complete
- File/consult the issue for J9 compatibility; use an OpenJDK HotSpot JVM if possible
- Keep isJ9Vm detection accurate so HotSpot VMs use LauncherBootLoader
Example fix
// JVM selection // before: running on unsupported OpenJ9 0.30+ // after: use supported JDK JAVA_HOME=/path/to/jdk8-hotspot java -javaagent:pinpoint-bootstrap.jar ...
Defensive patterns
Strategy: try-catch
Validate before calling
String vmName = System.getProperty("java.vm.name");
boolean j9 = vmName != null && vmName.contains("OpenJ9") || (vmName != null && vmName.contains("IBM J9"));
// confirm supported JDK before attaching agent Try / catch
try { BootLoader bl = BootLoaderFactory.newBootLoader(); } catch (IllegalStateException e) { if (e.getMessage().startsWith("J9BootLoader create fail")) { log.error("JVM unsupported for J9 bootstrap: {}", e.getCause()); } throw e; } Prevention
- Pin the agent to JVM versions in the supported matrix
- Verify java.vm.name before enabling J9 paths
- Keep the agent jar fully intact (no shaded-away internal classes)
- Test agent attach on each JVM upgrade in staging
When it happens
Trigger: Running the Pinpoint agent on an IBM J9 JVM where J9BootLoader's reflective bootstrap access fails (different internal class names across J9/OpenJ9 versions).
Common situations: Newer OpenJ9 releases renamed internal bootstrap-classloader classes, agent attached to a J9 VM not matching the supported version, or a fat-jar missing J9BootLoader dependency classes.
Related errors
- bootstrapClassLoader not found Caused by:
- not found Caused by:
- initialize fail Caused by:
- invoke fail Caused by:
- boot method invoke failed. Error:
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/3ab5d70781bba02f.
Report an issue: GitHub.