Bug 530142 - [9] Module autocompletion ignores Automatic-Module-Name for
Classpath Container entries
Change-Id: Ieae333a26b5dec3a4c74ac34c27972a3e40f5291
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests9.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests9.java
index 52e2e2c..e5f90d8 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests9.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/CompletionTests9.java
@@ -1247,4 +1247,34 @@
deleteProject(project2);
}
}
+public void testBug530142() throws Exception {
+ ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"Completion9_1", "/Completion/test.second.jar,/Completion/test.third.jar,/Completion/test.some.api.jar"}));
+ IJavaProject project1 = createJavaProject("Completion9_1", new String[] {"src"}, new String[] {"JCL19_LIB", "org.eclipse.jdt.core.tests.model.TEST_CONTAINER"}, "bin", "9");
+ try {
+ project1.open(null);
+
+ createFolder("/Completion9_1/src/x");
+ String content = "module my.mod { \n" +
+ "requires test.\n" +
+ "}\n";
+ String filePath = "/Completion9_1/src/module-info.java";
+ String completeBehind = "requires test.";
+ createFile(filePath, content);
+ int cursorLocation = content.lastIndexOf(completeBehind) + completeBehind.length();
+ CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2();
+
+ waitUntilIndexesReady();
+
+ ICompilationUnit unit = getCompilationUnit("/Completion9_1/src/module-info.java");
+ unit.codeComplete(cursorLocation, requestor);
+
+ String expected = "[MODULE_REF]{test.second, test.second, null, null, 49}\n" +
+ "[MODULE_REF]{test.some.core.api, test.some.core.api, null, null, 49}\n" +
+ "[MODULE_REF]{test.third.from.manifest, test.third.from.manifest, null, null, 49}";
+ assertResults(expected, requestor.getResults());
+
+ } finally {
+ deleteProject(project1);
+ }
+}
}
\ No newline at end of file
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
index ff3a558..93b4ca0 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/PackageFragmentRoot.java
@@ -908,7 +908,7 @@
}
public IModuleDescription getAutomaticModuleDescription() throws JavaModelException {
- return getAutomaticModuleDescription(getRawClasspathEntry());
+ return getAutomaticModuleDescription(getResolvedClasspathEntry());
}
IModuleDescription getAutomaticModuleDescription(IClasspathEntry classpathEntry) {