pinpoint-apm/pinpoint · error · IllegalStateException
create fail Caused by
Error message
${name} create fail Caused by:${e.getMessage()} What it means
Thrown when the agent fails to instantiate Java9DefineClass via reflection while building the DefineClass delegate; the message names the class and chains the underlying reflective failure (e.g. ClassNotFoundException or linkage error) on Java 9+ JVMs.
Solutions
- Verify the Java9DefineClass class is present and shaded correctly in the agent jar
- Check JVM version detection (JvmUtils.getVersion) is not misreporting the version
- Ensure no custom classloader hierarchy is blocking reflective access to agent classes; add opens/add-opens flags if the module system denies access
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/DefineClassFactory.java:40 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/e50bb27fc86ffdf7.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/classloading/DefineClassFactory.java:40
import java.lang.reflect.Constructor;
/**
* @author Woonduk Kang(emeroad)
*/
public final class DefineClassFactory {
private static final DefineClass defineClass = newDefineClass();
private static DefineClass newDefineClass() {
final JvmVersion version = JvmUtils.getVersion();
if (version.onOrAfter(JvmVersion.JAVA_9)) {
final ClassLoader agentClassLoader = DefineClassFactory.class.getClassLoader();
final String name = "com.navercorp.pinpoint.profiler.instrument.classloading.Java9DefineClass";
try {
Class<DefineClass> defineClassClazz = (Class<DefineClass>) agentClassLoader.loadClass(name);
Constructor<DefineClass> constructor = defineClassClazz.getDeclaredConstructor();
return constructor.newInstance();
} catch (ReflectiveOperationException e) {
throw new IllegalStateException(name + " create fail Caused by:" + e.getMessage(), e);
}
}
return new Java8DefineClass();
}
public static DefineClass getDefineClass() {
return defineClass;
}
}
View on GitHub (pinned to 744c3d3075)