{"record":{"id":"7b5e4d205d5a9115","repo":"pinpoint-apm/pinpoint","slug":"methodname-desc-is-not-found-in-superclassi","errorCode":null,"errorMessage":"${methodName}${desc} is not found in ${superClassInternalName}","messagePattern":"(.+?)(.+?) is not found in (.+?)","errorType":"exception","errorClass":"NotFoundInstrumentException","httpStatus":null,"severity":"error","filePath":"agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java","lineNumber":255,"sourceCode":"\n    @Override\n    public InstrumentMethod addDelegatorMethod(final String methodName, final String... paramTypes) throws InstrumentException {\n        Objects.requireNonNull(methodName, \"methodName\");\n\n        // check duplicated method.\n        if (getDeclaredMethod(methodName, paramTypes) != null) {\n            throw new InstrumentException(getName() + \" already have method(\" + methodName + \").\");\n        }\n\n        final ASMClassNodeAdapter superClassNode = ASMClassNodeAdapter.get(this.pluginContext, classNode.getClassLoader(), classNode.getProtectionDomain(), this.classNode.getSuperClassInternalName());\n        if (superClassNode == null) {\n            throw new NotFoundInstrumentException(getName() + \" not found super class(\" + this.classNode.getSuperClassInternalName() + \")\");\n        }\n\n        final String desc = JavaAssistUtils.javaTypeToJvmSignature(paramTypes);\n        final ASMMethodNodeAdapter superMethodNode = superClassNode.getDeclaredMethod(methodName, desc);\n        if (superMethodNode == null) {\n            throw new NotFoundInstrumentException(methodName + desc + \" is not found in \" + superClassNode.getInternalName());\n        }\n\n        final ASMMethodNodeAdapter methodNode = this.classNode.addDelegatorMethod(superMethodNode);\n        setModified(true);\n        return new ASMMethod(this.engineComponent, this.pluginContext, this, methodNode);\n    }\n\n    @Override\n    public void addField(Class<?> accessorClass) throws InstrumentException {\n        Objects.requireNonNull(accessorClass, \"accessorClass\");\n        try {\n\n            final AccessorAnalyzer.AccessorDetails accessorDetails = AccessorAnalyzer.instance().analyze(accessorClass);\n\n            final Type type = accessorDetails.getFieldType();\n            final String accessorTypeName = accessorClass.getName();\n            final String fieldName = FIELD_PREFIX + JavaAssistUtils.javaClassNameToVariableName(accessorTypeName);\n            // skip members already declared in this class. e.g. a CGLIB proxy copies the injected members of an instrumented class","sourceCodeStart":237,"sourceCodeEnd":273,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java#L237-L273","documentation":"Thrown by ASMClass.addDelegatorMethod: the superclass loaded successfully but does not declare the method (name + descriptor) the delegator is supposed to forward to, so there is nothing to delegate and instrumentation fails.","triggerScenarios":"Thrown at agent-module/profiler/src/main/java/com/navercorp/pinpoint/profiler/instrument/ASMClass.java:255 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the method name and parameter types match a method actually declared in the superclass (not just a subtype)","Correct the plugin's delegator method specification","Instrument the class that truly declares the method instead"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}