[jboss-jira] [JBoss JIRA] (JASSIST-201) VerifyError: Inconsistent args_size for opc_invokeinterface occured for nested statement
Hua Zhang (JIRA)
jira-events at lists.jboss.org
Mon May 27 23:59:06 EDT 2013
Hua Zhang created JASSIST-201:
---------------------------------
Summary: 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
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