[jboss-jira] [JBoss JIRA] (JASSIST-241) VerifyError: Expecting a stackmap frame - Switch case statement Java 7
Shigeru Chiba (JIRA)
issues at jboss.org
Sun Jan 25 04:23:49 EST 2015
[ https://issues.jboss.org/browse/JASSIST-241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shigeru Chiba closed JASSIST-241.
---------------------------------
> VerifyError: Expecting a stackmap frame - Switch case statement Java 7
> ----------------------------------------------------------------------
>
> Key: JASSIST-241
> URL: https://issues.jboss.org/browse/JASSIST-241
> Project: Javassist
> Issue Type: Bug
> Affects Versions: 3.19.0-GA
> Environment: jdk7
> Reporter: Patson Luk
> Assignee: Shigeru Chiba
> Fix For: 3.20.0-GA
>
>
> This could be a duplicate of issue 215 and 205.
> Tested it on the master (3.19.0-GA) with java 7. Running the below class
> {code}
> import java.util.Random;
> import javassist.ClassPool;
> import javassist.CtClass;
> import javassist.CtMethod;
> public class TestDriver {
> public static void main(String[] args) throws Exception {
> ClassPool pool = ClassPool.getDefault();
> CtClass cc = pool.get("TestClass");
>
> CtMethod testMethod = cc.getMethod("test", "(Ljava/lang/Object;)V");
> testMethod.insertAfter("System.out.println(\"inserted!\");");
> cc.toClass();
> //invoke it
> TestClass.test(new Object());
> }
> }
> class TestClass {
> public static void test(Object o) {
> //part 1
> if (o == null) {
> return;
> }
> //part 2
> int oper = new Random().nextInt();
> switch (oper) {
> case 1:
> break;
> }
> }
> }
> {code}
>
> Triggers error message as below:
> {quote}
> Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 9 in method TestClass.test(Ljava/lang/Object;)V at offset 1
> at TestDriver.main(TestDriver.java:19)
> {quote}
> *Please take note that:*
> # This is observed on Java 7. When the same code is run on Java 6, it is fine
> # Both the "part 1" - return statement (commented in the code above) and "part 2" - switch/case statement have to be there to trigger the error. If either of those are commented out, then the code runs fine
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
More information about the jboss-jira
mailing list