Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugs9Tests.java608
-rw-r--r--org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/lib/bzero.src.501162.jarbin0 -> 4474 bytes
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchNameEnvironment.java7
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PossibleMatch.java7
4 files changed, 612 insertions, 10 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugs9Tests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugs9Tests.java
index 4a20b81af0..4065575479 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugs9Tests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugs9Tests.java
@@ -1567,6 +1567,614 @@ public void testBug501162_032() throws Exception {
deleteProject("JavaSearchBugs9");
}
}
+public void testBug501162_033() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("pack.one",
+ IJavaSearchConstants.PACKAGE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "src/pack1/X.java [pack.one] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_034() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("pack.two",
+ IJavaSearchConstants.PACKAGE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "src/pack1/X.java [pack.two] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_035() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("pack.three",
+ IJavaSearchConstants.PACKAGE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_036() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("java.base",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_037() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("zerotest",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_038() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("first",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_039() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("four",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_040() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("nomodule",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_041() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("XOne",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "src/pack1/X.java [XOne] EXACT_MATCH\n" +
+ "src/pack1/X.java pack1.X.X1 [XOne] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_042() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("XFourOne",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_043() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("ITwo",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "src/pack1/X.java [ITwo] EXACT_MATCH\n" +
+ "src/pack1/X.java pack1.X.i2 [ITwo] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar pack.one.XOne EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar pack.one.XOne.itwo EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar pack.two.XTwo EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_044() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("IThreeOne",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH\n" +
+ "lib/bzero.src.501162.jar pack.three.XThreeOne EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_045() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("XThreeOne",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void testBug501162_046() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "module zerotest {\n" +
+ " requires zero;\n" +
+ "}\n";
+ createFile("/JavaSearchBugs9/src/module-info.java", fileContent);
+ createFolder("/JavaSearchBugs9/src/pack1");
+ createFile("/JavaSearchBugs9/src/pack1/X.java",
+ "package pack1;\n" +
+ "import pack.one.XOne;\n" +
+ "import pack.two.ITwo;\n" +
+ "public class X {\n" +
+ " public ITwo i2;\n" +
+ " public XOne X1;\n" +
+ "}\n");
+ addLibraryEntry(project1, "/JavaSearchBugs/lib/bzero.src.501162.jar", false);
+ project1.close(); // sync
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("zero",
+ IJavaSearchConstants.MODULE, IJavaSearchConstants.DECLARATIONS, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "lib/bzero.src.501162.jar zero [No source] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ }
+}
+public void _testBug501162_047() throws Exception {
+ try {
+ IJavaProject project1 = createJavaProject("JavaSearchBugs9", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project1.open(null);
+ addClasspathEntry(project1, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String fileContent =
+ "package pack.top;\n" +
+ "import pack.first.Y;\n" +
+ "import pack.first.second.Z;\n" +
+ "\n" +
+ "public class X {\n" +
+ " public Y y;\n" +
+ " public Z z;\n" +
+ "}\n";
+ createFolder("/JavaSearchBugs9/src/pack");
+ createFolder("/JavaSearchBugs9/src/pack/top");
+ createFile("/JavaSearchBugs9/src/pack/top/X.java", fileContent);
+ project1.close(); // sync
+ project1.open(null);
+
+ IJavaProject project2 = createJavaProject("split.first", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project2.open(null);
+ addClasspathEntry(project2, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.MODULE_PATH")));
+ String file =
+ "module split.first {\n" +
+ " exports pack.first;\n" +
+ "}\n";
+ createFile("/split.first/src/module-info.java", file);
+ createFolder("/split.first/src/pack");
+ createFolder("/split.first/src/pack/first");
+ createFile("/split.first/src/pack/first/Y.java",
+ "package pack.first;\n" +
+ "public class Y{}\n");
+ addClasspathEntry(project1, JavaCore.newProjectEntry(project2.getPath()));
+
+ IJavaProject project3 = createJavaProject("split.second", new String[] {"src"}, new String[] {"JCL19_LIB"}, "bin", "9");
+ project3.open(null);
+ file =
+ "module split.second {\n" +
+ " exports pack.first.second;\n" +
+ "}\n";
+ createFile("/split.second/src/module-info.java", file);
+ createFolder("/split.second/src/pack");
+ createFolder("/split.second/src/pack/first");
+ createFolder("/split.second/src/pack/first/second");
+ createFile("/split.second/src/pack/first/second/Z.java",
+ "package pack.first.second;\n" +
+ "public class Z{}\n");
+ addClasspathEntry(project1, JavaCore.newProjectEntry(project3.getPath()));
+
+ project1.close(); // sync
+ project2.close();
+ project3.close();
+ project3.open(null);
+ project2.open(null);
+ project1.open(null);
+ SearchPattern pattern = SearchPattern.createPattern("pack.first.Y",
+ IJavaSearchConstants.TYPE, IJavaSearchConstants.REFERENCES, EXACT_RULE);
+ IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaProject[]
+ {getJavaProject("JavaSearchBugs9")});
+ search(pattern, scope, this.resultCollector);
+
+ assertSearchResults(
+ "src/pack/top/X.java [pack.first.Y] EXACT_MATCH\n" +
+ "src/pack/top/X.java pack.top.X.y [Y] EXACT_MATCH",
+ this.resultCollector);
+ }
+ finally {
+ deleteProject("JavaSearchBugs9");
+ deleteProject("split.first");
+ deleteProject("split.second");
+ }
+}
public void testBug519211_001() throws CoreException {
try {
diff --git a/org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/lib/bzero.src.501162.jar b/org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/lib/bzero.src.501162.jar
new file mode 100644
index 0000000000..eb39805139
--- /dev/null
+++ b/org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/lib/bzero.src.501162.jar
Binary files differ
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchNameEnvironment.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchNameEnvironment.java
index da0eb13fa2..7828b0a31d 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchNameEnvironment.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/JavaSearchNameEnvironment.java
@@ -40,7 +40,6 @@ import org.eclipse.jdt.internal.compiler.env.IModule;
import org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment;
import org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
-import org.eclipse.jdt.internal.compiler.lookup.ModuleBinding;
import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
import org.eclipse.jdt.internal.core.ClasspathEntry;
import org.eclipse.jdt.internal.core.JavaElement;
@@ -340,9 +339,9 @@ public char[][] getModulesDeclaringPackage(char[][] parentPackageName, char[] pa
for (ClasspathLocation location : this.locationSet) {
if (strategy.matches(location, ClasspathLocation::hasModule) ) {
if (location.isPackage(qualifiedPackageName, null)) {
- IModule module = location.getModule();
- char[] aName = module != null ? module.name() : ModuleBinding.UNNAMED;
- moduleNames = CharOperation.arrayConcat(moduleNames, aName); // FIXME(SHMOD): handle multiple modules per location https://bugs.eclipse.org/501162#c29
+ char[][] mNames = location.getModulesDeclaringPackage(qualifiedPackageName, null);
+ if (mNames == null || mNames.length == 0) continue;
+ moduleNames = CharOperation.arrayConcat(moduleNames, mNames);
}
}
}
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PossibleMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PossibleMatch.java
index ee5e39376c..5fc43e0add 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PossibleMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/PossibleMatch.java
@@ -78,12 +78,7 @@ public char[] getContents() {
IType type = ((ClassFile) this.openable).getType();
contents = sourceMapper.findSource(type, fileName);
} else if (this.openable instanceof ModularClassFile) {
- try {
- IModuleDescription module = ((ModularClassFile) this.openable).getModule();
- contents = sourceMapper.findSource(module);
- } catch (JavaModelException e) {
- return CharOperation.NO_CHAR;
- }
+ return CharOperation.NO_CHAR; // do not return contents
}
}
} else {

Back to the top