[jboss-jira] [JBoss JIRA] Commented: (JASSIST-93) VerifyError with addLocalVariable() and insertAfter()

Joerg Plewe (JIRA) jira-events at lists.jboss.org
Thu Sep 10 05:25:23 EDT 2009


    [ https://jira.jboss.org/jira/browse/JASSIST-93?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12485113#action_12485113 ] 

Joerg Plewe commented on JASSIST-93:
------------------------------------

The value of the boolean parameter in insertAfter() doesn't matter, the same error occurs regardless wether it is true or false.

Which somehow violates the documention of CtBehavior#addLocalVariable(). 

http://www.csg.is.titech.ac.jp/~chiba/javassist/html/javassist/CtBehavior.html#addLocalVariable%28java.lang.String,%20javassist.CtClass%29

The local variable should not be visible of the parameter is true, but it is.

> VerifyError with addLocalVariable() and insertAfter()
> -----------------------------------------------------
>
>                 Key: JASSIST-93
>                 URL: https://jira.jboss.org/jira/browse/JASSIST-93
>             Project: Javassist
>          Issue Type: Bug
>         Environment: javassist 3.11 and 3.5
> JDK6
>  
>            Reporter: Joerg Plewe
>            Assignee: Shigeru Chiba
>
> Hi all!
> This is my first post here and I am a javassist newbie. So hopefully my problem can easily be solved.
> From a real usecase, I condensed the following fragment demonstrating my problem:
> Code:
> ClassPool cp = ClassPool.getDefault();
> CtClass cl = cp.getCtClass("jatest.Test");
> CtMethod m = cl.getDeclaredMethod("foo");
> m.addLocalVariable("bar", CtClass.longType);
> m.insertAfter("bar;", true);
> Object o = cl.toClass().newInstance();	
> The class 'Test' is as simple as it can get:
> Code:
> public class Test {
> 	public void foo() {}
> }
> 	
> Running the code delivers a VerifyError which I think it shouldn't:
> Code:
> Exception in thread "main" java.lang.VerifyError: (class: jatest/Test, method: foo signature: ()V) Register pair 1/2 contains 
> wrong type
>         at java.lang.Class.getDeclaredConstructors0(Native Method)
>         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
>         at java.lang.Class.getConstructor0(Class.java:2699)
>         at java.lang.Class.newInstance0(Class.java:326)
>         at java.lang.Class.newInstance(Class.java:308)
>         at jatest.Main.main(Main.java:27)	

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list