Bug 151118 - verifier errors occur when running osgi tests
Summary: verifier errors occur when running osgi tests
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.3 M1   Edit
Assignee: Olivier Thomann CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-07-19 14:14 EDT by Thomas Watson CLA
Modified: 2006-08-08 05:10 EDT (History)
1 user (show)

See Also:


Attachments
Proposed fix (962 bytes, patch)
2006-07-19 15:33 EDT, Olivier Thomann CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Watson CLA 2006-07-19 14:14:22 EDT
On Build I20060718-0800

If the osgi tests (from org.eclipse.osgi.tests project) are compiled with the latest I-Build then verifier errors occur when you try to run the tests.  Here is the output to the console:

Failed to invoke suite(): java.lang.VerifyError: arguments are not type compatible (class: org/eclipse/osgi/tests/util/BidiTextProcessorTestCase method: <clinit>()V) at pc: 253
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:106)
	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:59)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:445)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
	at org.eclipse.pde.internal.junit.runtime.RemotePluginTestRunner.main(RemotePluginTestRunner.java:58)
	at org.eclipse.pde.internal.junit.runtime.CoreTestApplication.run(CoreTestApplication.java:24)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
	at org.eclipse.core.launcher.Main.run(Main.java:977)
	at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: java.lang.VerifyError: arguments are not type compatible (class: org/eclipse/osgi/tests/util/BidiTextProcessorTestCase method: <clinit>()V) at pc: 253
	at java.lang.J9VMInternals.verifyImpl(Native Method)
	at java.lang.J9VMInternals.verify(J9VMInternals.java:55)
	at java.lang.J9VMInternals.initialize(J9VMInternals.java:124)
	at java.lang.Class.forNameImpl(Native Method)
	at java.lang.Class.forName(Class.java:131)
	at org.eclipse.osgi.tests.util.AllTests.addBidiTests(AllTests.java:19)
	at org.eclipse.osgi.tests.util.AllTests.<init>(AllTests.java:14)
	at org.eclipse.osgi.tests.util.AllTests.suite(AllTests.java:10)
	at org.eclipse.osgi.tests.AutomatedTests.suite(AutomatedTests.java:45)
	... 24 more

I reproduced this running the tests with the IBM 1.5 VM and Sun 1.4.2 VM.  Here are the steps to reproduce.

1) Open an empty workspace.  I use IBM 1.5 VM to launch the workspace but I'm not sure that matters
2) Check out the following projects from the eclipse CVS repo:

org.eclipse.core.tests.harness
org.eclipse.osgi.tests
org.eclipse.test.performance

3) Wait for the projects to finish building ...
4) Launch the osgi tests with the Junit plug-in test launcher
  Run->Run...->JUnit Plug-in Test->All OSGi Tests

Doing the same thing on the final 3.2 build succeeds without the verifier errors.
Comment 1 Olivier Thomann CLA 2006-07-19 14:34:22 EDT
I'll investigate.
Comment 2 Olivier Thomann CLA 2006-07-19 15:27:54 EDT
The bug comes from the new CombinedBinaryExpression node.
Fixed and released in HEAD.
Added regression test in org.eclipse.jdt.core.tests.compiler.regression.XLargeTest.test013.
Comment 3 Olivier Thomann CLA 2006-07-19 15:33:14 EDT
Thomas,

Could you please verify with next nightly build that your problem is fixed?
Thanks.

Maxime,
Please double-check the change. I'll attach the patch.
Comment 4 Olivier Thomann CLA 2006-07-19 15:33:29 EDT
Created attachment 46534 [details]
Proposed fix
Comment 5 Thomas Watson CLA 2006-07-19 16:18:50 EDT
I built the code in HEAD.  It seems to work perfectly now.  Thanks.
Comment 6 Olivier Thomann CLA 2006-07-19 16:31:08 EDT
Reopen to close as RESOLVED/FIXED.
We do the verification prior to each milestone build and only then we close as VERIFIED.
Thanks for checking though.
Comment 7 Olivier Thomann CLA 2006-07-19 16:31:21 EDT
Fixed.
Comment 8 Olivier Thomann CLA 2006-07-19 16:31:38 EDT
Fixed.
Comment 9 Frederic Fusier CLA 2006-08-03 08:48:47 EDT
Released for 3.3 M1
Comment 10 Frederic Fusier CLA 2006-08-08 05:10:13 EDT
Verified for 3.3 M1 by reporter