Summary: | [1.6][compiler] Illegal stack map frames | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Olivier Thomann <Olivier_Thomann> | ||||
Component: | Core | Assignee: | Olivier Thomann <Olivier_Thomann> | ||||
Status: | VERIFIED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | P3 | CC: | loskutov, philippe_mulet | ||||
Version: | 3.2.1 | ||||||
Target Milestone: | 3.3 M5 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Olivier Thomann
2007-01-23 17:25:45 EST
I tried to reproduce the failure unsuccessfully so far. Would it be possible for you to send me the .class file that you got for this class? Thanks. Created attachment 57388 [details] ecj/1.6 recompiled class Compiled with latest ecj (see bug 169017 comment 20) from Eclipse 3.2.1 source distribution and with 1.6 target/source flags. Thanks. I'll continue to investigate. The .class file you sent is indeed boggus. Reproduced. I need to see why I cannot reproduce when isolating the code. I am investigating it. Isolated a small reproducable case. Working on a fix. Andrei, I tried a fix and now I can open a java editor without getting a VerifyError for invalid stack frames, but I am getting the one about the illegal protected access to a constructor that doesn't make sense. I tried to run it with JDK7b06 and I am getting a IllegalStateException on startup. You said you had problems as well with JDK7 VMs. What is the same issue? Andrei, You might be interested bu bug 171799. Once I fixed the issue, I can start Eclipse and open a java editor without getting a VerifyError. Whooo hooo! Philippe, ok to release to HEAD? All tests passed. Released for 3.3M5. Regression tests added in org.eclipse.jdt.core.tests.compiler.regression.StackMapAttributeTest#test029/030 Olivier, could you please point me which CVS branch/version you've used for that fix in compiler? Instead to asking you each time for a new ecj.jar file I could just rebuild it by myself, if I would know what I need to checkout. I'm right that the HEAD of org.eclipse.jdt.core is the branch where the fix is? If not, please give a hint :) Yes, it is HEAD. By default it is always HEAD, unless we backport a fix. Then we specify the branch (3_2_MAINTENANCE, ...). Thank you, Olivier, I could confirm that now it works on 1.7 without any verifier erors (1.6 has still this "protected <init>" VM bug). Now at this weekend I could check how good ecj performs compared with javac :) Thank you for confirming it works fine. Please keep me inform about the performance results. Olivier, please look at the http://jroller.com/page/andyl?entry=compiler_championship_continued post for numbers. At least for Eclipse startup time the ecj generated 1.6 code is slightly faster as javac generated by approx 2.6%. This is of course near to the measurement tolerance, but still a good sign. Now you can tweak the compiler to change 2.6% to 26% :) verified by user for 3.3 M5 |