DO NOT REPLY [Bug 48279] New: Invalid method signature: TT; when using MethodGen for a method having a generic parameter

2009-11-25 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48279

   Summary: Invalid method signature: TT; when using MethodGen
for a method having a generic parameter
   Product: BCEL
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: major
  Priority: P2
 Component: Main
AssignedTo: bcel-dev@jakarta.apache.org
ReportedBy: enrico.gu...@polito.it


The following code throws a ClassFormatException: Invalid method signature:
TT; when executed:
===

import org.apache.bcel.Repository;
import org.apache.bcel.classfile.JavaClass;
import org.apache.bcel.classfile.Method;
import org.apache.bcel.generic.ConstantPoolGen;
import org.apache.bcel.generic.MethodGen;

class MyClassLoader extends ClassLoader {
@Override
public Class? loadClass(String name) throws ClassNotFoundException {
if (name.startsWith(java.lang))
return super.loadClass(name);

JavaClass jcl;
jcl = Repository.lookupClass(name);
scanMethods(jcl);
byte[] data = jcl.getBytes();
return defineClass(name, data, 0, data.length);
}

private void scanMethods(JavaClass jcl) {
ConstantPoolGen cpg = new ConstantPoolGen(jcl.getConstantPool());
Method[] methods = jcl.getMethods();
for (int i = 0; i  methods.length; i++) {
MethodGen mg = new MethodGen(methods[i], jcl.getClassName(), cpg);
}
}
}

class FooT {
public void bar(T x) {
}
}

public class MethSignTest {
public MethSignTest() {
FooInteger foo = new FooInteger();
}

@SuppressWarnings(unchecked)
public static void main(String[] args) {
try {
MyClassLoader mcl = new MyClassLoader();
ClassMethSignTest c = (ClassMethSignTest) mcl
.loadClass(MethSignTest.class.getName());
c.newInstance();
} catch (Exception e) {
e.printStackTrace();
}

}
}
===

Here's the full stack trace:

org.apache.bcel.classfile.ClassFormatException: Invalid method signature: TT;
at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:986)
at org.apache.bcel.generic.Type.getType(Type.java:169)
at org.apache.bcel.generic.MethodGen.init(MethodGen.java:255)
at methodsignature.MyClassLoader.scanMethods(MethSignTest.java:26)
at methodsignature.MyClassLoader.loadClass(MethSignTest.java:17)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at methodsignature.MethSignTest.init(MethSignTest.java:38)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at methodsignature.MethSignTest.main(MethSignTest.java:47)

This misbehaviour occurs at least since revision 617860.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: bcel-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: bcel-dev-h...@jakarta.apache.org



DO NOT REPLY [Bug 48270] Invalid stack map table tag bad constant pool index with Java 1.6 bytecode

2009-11-25 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48270

Enrico Gueli enrico.gu...@polito.it changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Enrico Gueli enrico.gu...@polito.it 2009-11-25 10:11:39 
UTC ---


*** This bug has been marked as a duplicate of bug 47073 ***

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: bcel-dev-unsubscr...@jakarta.apache.org
For additional commands, e-mail: bcel-dev-h...@jakarta.apache.org