[jboss-user] [Javassist user questions] - Inconsistent stack height 0 != 1
bblfish
do-not-reply at jboss.com
Wed Sep 26 15:58:49 EDT 2007
I am getting a weird exception when I add code to the toString method of the following class.
This is code I am working on https://sommer.dev.java.net project.
My javassist byte code rewritten classes otherwise work well (though I am only now starting to test them in more serious ways).
package net.java.dev.sommer.doap.ont;
|
| import java.io.File;
| import java.net.URL;
| import java.util.Collection;
| import net.java.rdf.annotations.rdf;
| import net.java.dev.sommer.doap.CheckoutHandler;
| import static net.java.dev.sommer.doap.ont.DoapProject.doap;
|
| /**
| *
| * @author hjs
| */
| @rdf(doap+"Repository")
| public class Repository {
|
| @rdf(doap+"location") private URL location;
| @rdf(doap+"browse") private Collection<URL> browse;
| @rdf(doap+"anon-root") private String anonRoot;
| @rdf(doap+"name") private String name;
|
| public CheckoutHandler checkout(File destination) {
| throw new UnsupportedOperationException("Not yet implemented");
| }
|
| public String getType() {
| return "unknown";
| }
|
| public URL getLocation() {
| return location;
| }
|
| public Collection<URL> getBrowse() {
| return browse;
| }
|
| public String getAnonRoot() {
| return anonRoot;
| }
|
| @Override
| public String toString() {
| if (name != null) return getType()+" type "+name;
| // if (location != null) return getType()+" type at "+location.getPath();
| return getType()+" type with no name";
| }
|
|
| }
The stack trace is the following
java.lang.VerifyError: (class: net/java/dev/sommer/doap/ont/Repository, method: toString signature: ()Ljava/lang/String;) Inconsistent stack height 0 != 1
| at java.lang.Class.getDeclaredConstructors0(Native Method)
| at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
| at java.lang.Class.getConstructor0(Class.java:2640)
| at java.lang.Class.getConstructor(Class.java:1629)
| at net.java.rdf.sommer.SesameMapper.map(SesameMapper.java:989)
| at net.java.rdf.sommer.SesameMapper.getCollection(SesameMapper.java:1220)
| at net.java.rdf.sommer.util.RDFCollection.getCurrentCollection(RDFCollection.java:113)
| at net.java.rdf.sommer.util.RDFCollection.isEmpty(RDFCollection.java:121)
| at net.java.dev.sommer.doap.DoapDisplayForm.htmlForProject(DoapDisplayForm.java:222)
| at net.java.dev.sommer.doap.DoapDisplayForm.<init>(DoapDisplayForm.java:48)
| at net.java.dev.sommer.doap.DoapFetcher.useTheDoapFile(DoapFetcher.java:226)
| at net.java.dev.sommer.doap.DoapFetcher.run(DoapFetcher.java:214)
| at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
| at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
| [catch] at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
| at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
| at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
| at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
| at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
|
perhaps I can send the byte code too. I am not sure where I should look to resolve the problem. If I remove the
code from the toString() everything works fine.
I can dissasemble the byte code with jad, and javap seems to have to trouble with it either.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4089034#4089034
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4089034
More information about the jboss-user
mailing list