pinpoint-apm/pinpoint · error · NotFoundInstrumentException
not found super class( )
Error message
${className} not found super class(${superClassInternalName}) What it means
Thrown while resolving the superclass in ASMClass.addDelegatorMethod: the superclass bytecode of the instrumented class could not be loaded via ASMClassNodeAdapter (null superClassNode), so the inherited method to delegate to cannot be located.
Solutions
- Verify the superclass of the target class is loadable in its classloader
- Check for classpath conflicts hiding the superclass
- Ensure the plugin only instruments classes whose hierarchy is fully resolvable
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java:249 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/c014643a1ba9dff8.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java:249
}
final ASMAspectWeaver aspectWeaver = new ASMAspectWeaver();
aspectWeaver.weaving(this.classNode, adviceClassNode);
setModified(true);
}
@Override
public InstrumentMethod addDelegatorMethod(final String methodName, final String... paramTypes) throws InstrumentException {
Objects.requireNonNull(methodName, "methodName");
// check duplicated method.
if (getDeclaredMethod(methodName, paramTypes) != null) {
throw new InstrumentException(getName() + " already have method(" + methodName + ").");
}
final ASMClassNodeAdapter superClassNode = ASMClassNodeAdapter.get(this.pluginContext, classNode.getClassLoader(), classNode.getProtectionDomain(), this.classNode.getSuperClassInternalName());
if (superClassNode == null) {
throw new NotFoundInstrumentException(getName() + " not found super class(" + this.classNode.getSuperClassInternalName() + ")");
}
final String desc = JavaAssistUtils.javaTypeToJvmSignature(paramTypes);
final ASMMethodNodeAdapter superMethodNode = superClassNode.getDeclaredMethod(methodName, desc);
if (superMethodNode == null) {
throw new NotFoundInstrumentException(methodName + desc + " is not found in " + superClassNode.getInternalName());
}
final ASMMethodNodeAdapter methodNode = this.classNode.addDelegatorMethod(superMethodNode);
setModified(true);
return new ASMMethod(this.engineComponent, this.pluginContext, this, methodNode);
}
@Override
public void addField(Class<?> accessorClass) throws InstrumentException {
Objects.requireNonNull(accessorClass, "accessorClass");
try {
View on GitHub (pinned to 744c3d3075)