eclipse-jdt / eclipse-jdt/eclipse.jdt.core
Sporadic fail in JavaModelManager.testCreatePkgHandleInDifferentProject
- Dominant language
- Java
- Stars
- 237
- Forks
- 195
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 49
Description
`testCreatePkgHandleInDifferentProject` failed again here: https://download.eclipse.org/eclipse/downloads/drops4/I20260309-1800/testresults/html/org.eclipse.jdt.core.tests.model_ep440I-unit-win32-x86_64-java21_win32.win32.x86_64_21.html
```
Unexpected element. ----------- Expected ------------ ------------ but was ------------ x.z [in /P1/lib [in P2]] ---------------------- ---------- expected:<[]> but was:<[x.z [in /P1/lib [in P2]]]>
junit.framework.ComparisonFailure: Unexpected element.
----------- Expected ------------
------------ but was ------------
x.z [in /P1/lib [in P2]]
---------------------- ----------
expected:<[]> but was:<[x.z [in /P1/lib [in P2]]]>
at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertStringEquals(TestCase.java:265)
at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertEquals(TestCase.java:240)
at org.eclipse.jdt.core.tests.model.AbstractJavaModelTests.assertElementEquals(AbstractJavaModelTests.java:983)
at org.eclipse.jdt.core.tests.model.JavaModelTests.testCreatePkgHandleInDifferentProject(JavaModelTests.java:327)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at junit.framework.TestCase.runTest(TestCase.java:177)
at org.eclipse.jdt.core.tests.junit.extension.TestCase.runTest(TestCase.java:970)
at junit.framework.TestCase.runBare(TestCase.java:142)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:130)
at junit.framework.TestSuite.runTest(TestSuite.java:241)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.runTest(SuiteOfTestCases.java:114)
at junit.framework.TestSuite.run(TestSuite.java:236)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.superRun(SuiteOfTestCases.java:97)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite$1.protect(SuiteOfTestCases.java:85)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at org.eclipse.jdt.core.tests.model.SuiteOfTestCases$Suite.run(SuiteOfTestCases.java:94)
at junit.framework.TestSuite.runTest(TestSuite.java:241)
at junit.framework.TestSuite.run(TestSuite.java:236)
```
Same fail is seen if the test is changed like this:
```
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaModelTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaModelTests.java
index 324b602d2b..fde83b6f81 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaModelTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaModelTests.java
@@ -323,7 +323,7 @@ public void testCreatePkgHandleInDifferentProject() throws CoreException {
"x.z [in /P1/lib [in P2]]",
JavaCore.create(folder2)
);
- p2.getProject().close(null);
+// p2.getProject().close(null);
assertElementEquals(
"Unexpected element",
"", // closed
```
In this case, the result of `JavaCore.create()` is created here:
```
"main" #1 [414937] prio=6 os_prio=0 cpu=2798.53ms elapsed=15.40s tid=0x00007f067c01c060 nid=414937 at breakpoint [0x00007f0683ffc000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.jdt.internal.core.JavaModelManager.determineIfOnClasspath(JavaModelManager.java:1172)
at org.eclipse.jdt.internal.core.JavaModelManager.create(JavaModelManager.java:1009)
at org.eclipse.jdt.core.JavaCore.create(JavaCore.java:3845)
at org.eclipse.jdt.core.tests.model.JavaModelTests.testCreatePkgHandleInDifferentProject(JavaModelTests.java:330)
```
So maybe the JDT model was not updated properly after the project close... Normally the closed project has no classpath entries, so `JavaModelManager.determineIfOnClasspath()` exits early.
Contributor guide
Assessment
This issue has not been assessed yet.