[jboss-jira] [JBoss JIRA] (JASSIST-201) VerifyError: Inconsistent args_size for opc_invokeinterface occured for nested statement

Shigeru Chiba (JIRA) jira-events at lists.jboss.org
Tue May 28 05:31:06 EDT 2013


     [ https://issues.jboss.org/browse/JASSIST-201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shigeru Chiba resolved JASSIST-201.
-----------------------------------

    Fix Version/s: 3.18.0-GA
       Resolution: Done


It's been already fixed.
                
> VerifyError: Inconsistent args_size for opc_invokeinterface occured for nested statement
> ----------------------------------------------------------------------------------------
>
>                 Key: JASSIST-201
>                 URL: https://issues.jboss.org/browse/JASSIST-201
>             Project: Javassist
>          Issue Type: Bug
>    Affects Versions: 3.17.1-GA
>         Environment: Sun JRE6 1.6.0_25 64bits
>            Reporter: Hua Zhang
>            Assignee: Shigeru Chiba
>            Priority: Critical
>              Labels: VerifyError, nested, opc_invokeinterface
>             Fix For: 3.18.0-GA
>
>
> Please see source in "steps to reproduce".
> Running the code will throw error:
> Exception in thread "main" java.lang.VerifyError: (class: Clazz, method: method signature: ()V) Inconsistent args_size for opc_invokeinterface
> 	at java.lang.Class.getDeclaredConstructors0(Native Method)
> 	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> 	at java.lang.Class.getConstructors(Unknown Source)
> 	at test.<init>(test.java:27)
> 	at test.main(test.java:31)
> The key is on "new HashMap().toString()" in the statement:
>     theMethod.setBody("{map.put(\"name\", new HashMap().toString());System.out.println(\"OK\");}");
> The behaviour is really strange. Try to modify it, sometimes it can be run successfully, sometimes failed. But they all can be compiled successfully.
> FAILED:
> theMethod.setBody("{StringBuffer buffer = new StringBuffer();map.put(\"name\", buffer.toString());System.out.println(\"OK\");}");
> SUCCESS:
> theMethod.setBody("{map.put(\"name\", map.toString());System.out.println(\"OK\");}");
> SUCCESS: (workaround)
> theMethod.setBody("{String V = new HashMap().toString();map.put(\"name\", V);System.out.println(\"OK\");}");

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list