Oh, ()V is a method signature.

Use

Type getReturnType(String signature)
or
Type[] getArgumentTypes(String signature)


----- Original Message ----- From: "Dean Hiller" <[EMAIL PROTECTED]>
To: "BCEL Users List" <[email protected]>
Sent: Thursday, January 13, 2005 9:53 AM
Subject: Re: ConstantNameAndType...how do get the type?



thanks much for the hint, though that didn't seem to work as other constants
then caused what looks like the same exception even though the code is
different.


Here is the code with line numbers...

193      String sig5 = ((ConstantNameAndType)c).getSignature(pool);
194      log("type="+Type.getType(sig5));

Here is the exception...notice the exception coming out of line 194....(Is
there some way to prevent this?  This looks like the same exception I got
with my previous code)

1)
testLocalVarDepend(net.sf.antcontrib.design.VerifyDesignTest)C:\ROOT\views\s
fviews\ant-contrib2\test\resources\design\verifydesign.xml:102:
org.apache.bcel.classfile.ClassFormatException: Invalid method signature:
()V

at org.apache.tools.ant.Task.perform(Task.java:373)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at
net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTes
t.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)

Caused by: org.apache.bcel.classfile.ClassFormatException: Invalid method
signature: ()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at org.apache.bcel.generic.Type.getType(Type.java:158)

at
net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:194)

at
net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:
152)

at
net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesig
n.java:136)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:94)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

... 21 more

--- Nested Exception ---

org.apache.bcel.classfile.ClassFormatException: Invalid method signature:
()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at org.apache.bcel.generic.Type.getType(Type.java:158)

at
net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:194)

at
net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:
152)

at
net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesig
n.java:136)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:94)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at
net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTes
t.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)


----- Original Message ----- From: "Dave Brosius" <[EMAIL PROTECTED]>
To: "BCEL Users List" <[email protected]>
Sent: Wednesday, January 12, 2005 11:03 PM
Subject: Re: ConstantNameAndType...how do get the type?



Can't you use
ConstantNameAndType.getSignature(pool), and then
Type getType(String signature)




I am trying to get the type information out of of a ConstantNameAndType...


here is my code so far
String temp =
pool.constantToString(((ConstantNameAndType)c).getNameIndex(),
Constants.CONSTANT_Utf8)
+ " "
+ pool.constantToString(((ConstantNameAndType)c).getSignatureIndex(),
Constants.CONSTANT_Utf8);
log("temp="+temp);
String temp2 =
pool.constantToString(((ConstantNameAndType)c).getSignatureIndex(),
Constants.CONSTANT_Utf8);
log("temp2="+temp2);
//log("temp2a="+Utility.typeOfSignature(temp2));
log("temp3="+Utility.compactClassName(temp2));


which prints the following.....
const[18]=c Lmod/dummy/DummyClass;
inst=org.apache.bcel.classfile.ConstantNameAndType

temp=c Lmod/dummy/DummyClass;

temp2=Lmod/dummy/DummyClass;

temp3=Lmod.dummy.DummyClass;

I am just trying to get the mod.dummy.DummyClass string.  how do I do so?
If I uncomment the temp2a above it breaks because of other
ConstantNameAndTypes like the following message when I uncomment temp2a
above.....

const[18]=<init> ()V inst=org.apache.bcel.classfile.ConstantNameAndType

temp=<init> ()V

temp2=()V

E

Time: 2.244

There was 1 error:

1)

testLocalVarDepend(net.sf.antcontrib.design.VerifyDesignTest)C:\ROOT\views\s
fviews\ant-contrib2\test\resources\design\verifydesign.xml:102:
org.apache.bcel.classfile.ClassFormatException: Invalid method signature:
()V

at org.apache.tools.ant.Task.perform(Task.java:373)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at
org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at

net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTes
t.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at
net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)

Caused by: org.apache.bcel.classfile.ClassFormatException: Invalid method signature: ()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at

net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:189)

at

net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:
151)

at

net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesig
n.java:135)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:93)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

... 21 more

--- Nested Exception ---

org.apache.bcel.classfile.ClassFormatException: Invalid method signature:
()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at

net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:189)

at

net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:
151)

at

net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesig
n.java:135)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:93)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at
org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at

net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTes
t.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at
net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)

thanks for any help,

dean



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to