[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