--- a/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java Wed Jul 05 18:34:52 2017 +0200
+++ b/jaxp/src/com/sun/org/apache/bcel/internal/generic/MethodGen.java Thu Jan 10 20:26:00 2013 -0800
@@ -258,6 +258,23 @@
addLocalVariable(l.getName(), Type.getType(l.getSignature()),
l.getIndex(), start, end);
}
+ } else if (a instanceof LocalVariableTypeTable) {
+ LocalVariable[] lv = ((LocalVariableTypeTable) a).getLocalVariableTypeTable();
+ removeLocalVariables();
+ for (int k = 0; k < lv.length; k++) {
+ LocalVariable l = lv[k];
+ InstructionHandle start = il.findHandle(l.getStartPC());
+ InstructionHandle end = il.findHandle(l.getStartPC() + l.getLength());
+ // Repair malformed handles
+ if (null == start) {
+ start = il.getStart();
+ }
+ if (null == end) {
+ end = il.getEnd();
+ }
+ addLocalVariable(l.getName(), Type.getType(l.getSignature()), l
+ .getIndex(), start, end);
+ }
} else
addCodeAttribute(a);
}