Did anyone report this to Eclipse? Seems like there must be a more elegant way for that test to figure out where to find the classes, or at least we can get our patch in there too :)

geir

On Feb 1, 2007, at 11:05 AM, Sean Qiu wrote:

It is so helpful.
Thanks very much! :)


2007/2/1, Nina Rinskaya <[EMAIL PROTECTED]>:

On 2/1/07, Sean Qiu <[EMAIL PROTECTED]> wrote:
> Hi , everybody
>
> I am trying to run unit tests of the latest eclipse whose version is
> 3.2.1with harmony classlib and IBM J9 VM.
> But i encountered some problems when run the tests in package of
> org.eclipse.jdt.core.tests.compiler.regression.
>
> All the failing test's message seem similar who all contains this
sentence:
> The type java.lang.Object cannot be resolved. It is indirectly
referenced
> from required .class files
>
> At first, i thought it may be because that eclipse could not recognize
our
> harmony's JRE, so i added the plugin
> org.apache.harmony.eclipse.jdt.launching_1.0.2.jar before testing.
> But it was good-for-nothing.
>
> I find someone had successuflly run these tests with DRLVM, is there any
> further configuration???
> Have you ever encountered the similar problem??
>

I run Eclipse Unit Tests on DRLVM and yes, I did encounter the same
issue. It is caused by hard-coded class libraries names in
org/eclipse/jdt/core/tests/util/Util.java (you can find it in EUT
sources,
org.eclipse.sdk.tests.source_3.2.0.v20060329/src/ org.eclipse.jdt.core.tests.compiler_3.2.0/jdtcoretestscompilersrc.zip
).

It tries to return J9 specific class libraries path, and since you use
Harmony classlib, it fails to return correct class libraries path
(that is used to build bootclasspath for new VM instance) and, thus,
the tests from org.eclipse.jdt.core.tests.compiler.regression suite
fail with 'java.lang.Object cannot be resolved' message.

I had to modify one method to adapt it to DRLVM, please see the patch
below:

--------------------------------
*** orig/org/eclipse/jdt/core/tests/util/Util.java      2006-04-07
05:03:00.000000000 +0700
--- patched/org/eclipse/jdt/core/tests/util/Util.java   2007-02-01
14:30:53.759229716 +0600
***************
*** 11,18 ****
--- 11,19 ----
package org.eclipse.jdt.core.tests.util;

import java.io.File;
import java.io.FileInputStream;
+ import java.io.FilenameFilter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
***************
*** 498,505 ****
--- 499,518 ----
       final String vmName = System.getProperty("java.vm.name");
       if ("J9".equals(vmName)) {
               return new String[] { toNativePath(jreDir +
"/lib/jclMax/classes.zip")};
       }
+       if ("DRLVM".equals(vmName)) {
+             FilenameFilter jarFilter = new FilenameFilter() {
+                 public boolean accept(File dir, String name) {
+                         return name.endsWith(".jar") &
!name.endsWith("-src.jar");
+                 }
+           };
+           String[] jars = new File(jreDir +
"/lib/boot/").list(jarFilter);
+             for (int i = 0; i < jars.length; i++) {
+ jars[i] = toNativePath(jreDir + "/lib/boot/" + jars [i]);
+           }
+             return jars;
+       }
       File file = new File(jreDir + "/lib/rt.jar");
       if (file.exists()) {
               return new String[] {
                       toNativePath(jreDir + "/lib/rt.jar")

--------------------------------

I guess if you do something similar for J9, it should help.

Hope that it will help, looking forward to hearing from you. If you
have any troubles making this modifications or if it doesn't help, I
could give more details.

--
Thanks,
Nina


> Thanks very much.
>
>
>
> Here is one of the error full message
> ===============================
> Invalid problem log . ----------- Expected ------------ ----------\n 1. > ERROR in X.java (at line 3)\n * @see <a href="spec.html#section">Java
> Spec<a>\n ^^^\n Javadoc: Malformed link reference\n ----------\n
> ------------ but was ------------ ----------\n 1. ERROR in X.java (at
line
> 1)\n public class X {\n ^\n The type java.lang.Object cannot be
resolved. It
> is indirectly referenced from required .class files\n ---------- \n 2.
ERROR
> in X.java (at line 3)\n * @see <a href="spec.html#section">Java
Spec<a>\n
> ^^^\n Javadoc: Malformed link reference\n ----------\n ---------
Difference
> is ---------- expected:<......> but was:<...1)\n public class X {\n ^\n
The
> type java.lang.Object cannot be resolved. It is indirectly referenced
from
> required .class files\n ----------\n 2. ERROR in X.java (at line ...>
>
> junit.framework.ComparisonFailure: Invalid problem log .
> ----------- Expected ------------
> ----------\n
> 1. ERROR in X.java (at line 3)\n
> * @see <a href="spec.html#section">Java Spec<a>\n
> ^^^\n
> Javadoc: Malformed link reference\n
> ----------\n
>
> ------------ but was ------------
> ----------\n
> 1. ERROR in X.java (at line 1)\n
> public class X {\n
> ^\n
> The type java.lang.Object cannot be resolved. It is indirectly
referenced
> from required .class files\n
> ----------\n
> 2. ERROR in X.java (at line 3)\n
> * @see <a href="spec.html#section">Java Spec<a>\n
> ^^^\n
> Javadoc: Malformed link reference\n
> ----------\n
>
> --------- Difference is ----------
> expected:<......> but was:<...1)\n
> public class X {\n
> ^\n
> The type java.lang.Object cannot be resolved. It is indirectly
referenced
> from required .class files\n
> ----------\n
> 2. ERROR in X.java (at line ...>
> at
org.eclipse.jdt.core.tests.junit.extension.TestCase.assertStringEqual s(
> TestCase.java:28)
> at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertEquals(
> TestCase.java:189)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest .runNegativeTest
> (AbstractRegressionTest.java:687)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest .runNegativeTest
> (AbstractRegressionTest.java:569)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest .runNegativeTest
> (AbstractRegressionTest.java:548)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.JavadocBugsTest.testBu g73479
(
> JavadocBugsTest.java:2993)
> at java.lang.reflect.AccessibleObject.invokeV (AccessibleObject.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestDecorator.run(TestDecorator.java:28)
> at org.eclipse.jdt.core.tests.util.CompilerTestSetup.run(
> CompilerTestSetup.java:48)
> at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java: 330) > at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java: 24)
> at org.eclipse.test.CoreTestApplication.runTests(
CoreTestApplication.java
> :35)
> at org.eclipse.test.CoreTestApplication.run (CoreTestApplication.java:31)
> at org.eclipse.core.internal.runtime.PlatformActivator$1.run(
> PlatformActivator.java:78)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli cation
(
> 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
> :40)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(
EclipseStarter.java
> :177)
> at java.lang.reflect.AccessibleObject.invokeL (AccessibleObject.java:213)
> 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)
> at java.lang.reflect.AccessibleObject.invokeV (AccessibleObject.java:25)
> at com.ibm.oti.vm.JarRunner.main(JarRunner.java:42)
> 0.016
> testBug73995 - 1.3 Failure Unexpected problems: ---------- 1. ERROR in > X.java (at line 1) public class X { ^ The type java.lang.Object cannot
be
> resolved. It is indirectly referenced from required .class files
----------
>
> junit.framework.AssertionFailedError: Unexpected problems: ----------
> 1. ERROR in X.java (at line 1)
> public class X {
> ^
> The type java.lang.Object cannot be resolved. It is indirectly
referenced
> from required .class files
> ----------
>
> at
>
org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest .runConformTest
> (AbstractRegressionTest.java:463)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest .runConformTest
> (AbstractRegressionTest.java:279)
> at
>
org.eclipse.jdt.core.tests.compiler.regression.JavadocBugsTest.testBu g73995
(
> JavadocBugsTest.java:317)
> at java.lang.reflect.AccessibleObject.invokeV (AccessibleObject.java:25)
> at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
> at junit.extensions.TestDecorator.run(TestDecorator.java:28)
> at org.eclipse.jdt.core.tests.util.CompilerTestSetup.run(
> CompilerTestSetup.java:48)
> at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java: 330) > at org.eclipse.test.EclipseTestRunner.run(EclipseTestRunner.java: 24)
> at org.eclipse.test.CoreTestApplication.runTests(
CoreTestApplication.java
> :35)
> at org.eclipse.test.CoreTestApplication.run (CoreTestApplication.java:31)
> at org.eclipse.core.internal.runtime.PlatformActivator$1.run(
> PlatformActivator.java:78)
> at
>
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runAppli cation
(
> 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
> :40)
> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(
EclipseStarter.java
> :177)
> at java.lang.reflect.AccessibleObject.invokeL (AccessibleObject.java:213)
> 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)
> at java.lang.reflect.AccessibleObject.invokeV (AccessibleObject.java:25)
> at com.ibm.oti.vm.JarRunner.main(JarRunner.java:42)
>
> --
> Sean Qiu
>




--
Sean Qiu

Reply via email to