java.lang.IllegalArgumentException: Invalid opcode 169
There is an issue parsing org.apache.xml.serializer.CharInfo class. This class can be found in xalan-2.6.0. I used asm-commons 7.1
Exception in thread "main" java.lang.IllegalArgumentException: Invalid opcode 169
at org.objectweb.asm.commons.AdviceAdapter.visitVarInsn(AdviceAdapter.java:355)
at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2174)
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1283)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:688)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:400)
at Main.main(Main.java:19)
public static void main(String[] args) throws Exception{
InputStream is = new FileInputStream(new File("CharInfo.class"));
byte[] b = IOUtils.toByteArray(is);
ClassReader reader = new ClassReader(b);
ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);
reader.accept(new Main().new ASMClassVisitor(writer), ClassReader.SKIP_FRAMES);
}
public class ASMClassVisitor extends ClassVisitor {
public ASMClassVisitor(ClassVisitor cv) {
super(Opcodes.ASM7, cv);
}
@Override
public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) {
}
@Override
public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) {
MethodVisitor mv = cv.visitMethod(access, name, descriptor, signature, exceptions);
return mv == null ? null : new ASMMethodVisitor(mv, access, name, descriptor);
}
}
public class ASMMethodVisitor extends AdviceAdapter {
public ASMMethodVisitor(MethodVisitor mv, int access, String methodName, String desc){
super(Opcodes.ASM7,mv,access,methodName,desc);
}
@Override
protected void onMethodEnter() {}
@Override
protected void onMethodExit(int opcode) {}
}