MethodVisitor (int access, String name, String descriptor, String signature, String[] exceptions) { InstrumentationInfo instrumentationInfo = myAnnotatedMethods.get(new MethodKey(name, descriptor)); if (instrumentationInfo == null) { return super.visitMethod(access, name, descriptor, signature, exceptions); } return new FailSafeMethodVisitor(Opcodes.API_VERSION, super.visitMethod(access, name, descriptor, signature, exceptions)) { @Override public void visitCode() { instrumentationInfo.assertionGenerator.generateAssertion(mv, instrumentationInfo.methodStartLineNumber); super.visitCode(); } }; }