[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