Summary: | ECJ compiler fails to find boot classes on Harmony | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Gregory Shimansky <gshimansky> | ||||||||
Component: | Core | Assignee: | Olivier Thomann <Olivier_Thomann> | ||||||||
Status: | VERIFIED FIXED | QA Contact: | |||||||||
Severity: | normal | ||||||||||
Priority: | P3 | CC: | kent_johnson, maxime_daniel, nina.rinskaya | ||||||||
Version: | 3.2.2 | Flags: | kent_johnson:
review+
maxime_daniel: review+ |
||||||||
Target Milestone: | 3.3 RC2 | ||||||||||
Hardware: | PC | ||||||||||
OS: | All | ||||||||||
Whiteboard: | |||||||||||
Attachments: |
|
Description
Gregory Shimansky
2007-05-23 10:20:54 EDT
It seems that the property "sun.boot.class.path" is defined for all VMs I tried (Harmony, IBM, Sun, BEA). The property "org.apache.harmony.boot.class.path" doesn't seem to include a jar that contains java.lang.Object. I have a patch ready that is using the property "sun.boot.class.path" for all VMs and it looks like the bootclasspath is properly retrieved now for Harmony as well. Did I miss something as you suggested to use only the property "org.apache.harmony.boot.class.path" ? Created attachment 68374 [details]
Proposed fix
I tested it with Harmony(0.5M1), IBM(1.4/1.5/1.6), BEA(27.1) and Sun VM (1.4/1.5/1.6/1.7). It seems to work as expected now.
Kent, please review. Maxime, please review. Created attachment 68378 [details]
Proposed fix
New patch to also check for the property "org.apache.harmony.boot.class.path" in case of run on IBM VME (from the Harmony mailing list).
Olivier, I'd suggest that you cascade the tests as: String bootclasspathProperty = System.getProperty("sun.boot.class.path"); //$NON-NLS-1$ if ((bootclasspathProperty == null) || (bootclasspathProperty.length() == 0)) { // IBM J9 VMs bootclasspathProperty = System.getProperty("vm.boot.class.path"); //$NON-NLS-1$ if ((bootclasspathProperty == null) || (bootclasspathProperty.length() == 0)) { // Harmony using IBM VME bootclasspathProperty = System.getProperty("org.apache.harmony.boot.class.path"); //$NON-NLS-1$ } } This would save a couple of tests most times (since we expect to get it right on the sun.boot.class.path call in most cases). Patch still good without this change anyway. Good suggestion. Released for 3.3RC2 Created attachment 68417 [details]
Better patch
Patch based on Maxime's suggestion.
I verified that the bug is fixed on the nightly build I20070524-0800. Harmony runs ECJ just fine now. *** Bug 192576 has been marked as a duplicate of this bug. *** |