Delors/BAT — Issue #1: LocalVariableTable_attribute is missing in Method_Info attributes
Author: thomasschlosser
Created: 2011-11-10 09:27:36+00:00
State: open

Transformations of bytecode that contains local variable tables result in a BAT model instance that does not contain these information.

Simple example:
(Java Code):
public void testMethod() {
List list = new ArrayList();
list.add(null);
}

(Bytecode):
public void testMethod();
Code:
0:	new	#17; //class java/util/ArrayList
3:	dup
4:	invokespecial	#19; //Method java/util/ArrayList."":()V
7:	astore_1
8:	aload_1
9:	aconst_null
10:	invokeinterface	#20, 2; //InterfaceMethod java/util/List.add:(Ljava/lang/Object;)Z
15:	pop
16:	return

LineNumberTable:
line 8: 0
line 9: 8
line 10: 16

LocalVariableTable:
Start Length Slot Name Signature
0 17 0 this Ltest/TestClass;
8 9 1 list Ljava/util/List;

Extracted (Method_Info) attributes:
Only the following Code_attribute is attached to the Method_Info object...

Code_attribute(maxStack=2, maxLocals=2,Array(NEW(ObjectType(className="java/util/ArrayList")), DUP, INVOKESPECIAL(ObjectType(className="java/util/ArrayList"),,MethodDescriptor(parameterTypes=List(); returnType=VoidType)), ASTORE_1, ALOAD_1, ACONST_NULL, INVOKEINTERFACE(ObjectType(className="java/util/List"),add,MethodDescriptor(parameterTypes=List(ObjectType(className="java/lang/Object")); returnType=BooleanType)), POP, RETURN)WrappedArray(),WrappedArray())