### Eclipse Workspace Patch 1.0
#P org.eclipse.jdt.core
Index: search/org/eclipse/jdt/core/search/SearchPattern.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java,v
retrieving revision 1.59
diff -u -r1.59 SearchPattern.java
--- search/org/eclipse/jdt/core/search/SearchPattern.java 18 Apr 2006 16:28:18 -0000 1.59
+++ search/org/eclipse/jdt/core/search/SearchPattern.java 21 Apr 2006 16:48:11 -0000
@@ -1247,7 +1247,7 @@
typeQualification = CharOperation.subarray(typeErasure, 0, lastDot);
if (!field.isBinary()) {
// prefix with a '*' as the full qualification could be bigger (because of an import)
- CharOperation.concat(IIndexConstants.ONE_STAR, typeQualification);
+ typeQualification = CharOperation.concat(IIndexConstants.ONE_STAR, typeQualification);
}
}
} catch (JavaModelException e) {
#P org.eclipse.jdt.core.tests.model
Index: src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java,v
retrieving revision 1.75
diff -u -r1.75 JavaSearchBugsTests.java
--- src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 18 Apr 2006 16:28:01 -0000 1.75
+++ src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 21 Apr 2006 16:48:19 -0000
@@ -6348,4 +6348,51 @@
""+ getExternalJCLPathString("1.5") + " java.lang.CloneNotSupportedException EXACT_MATCH"
);
}
+static {
+ TESTS_PREFIX = "testBug137984";
+}
+/**
+ * Bug 137984: [search] Field references not found when type is a qualified member type [regression]
+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=137984"
+ */
+public void testBug137984_jar() throws CoreException {
+ IType type = getPackageFragment("JavaSearchBugs", "lib/b137984.jar", "").getClassFile("CJ.class").getType();
+ IField field = type.getField("c3");
+ search(field, REFERENCES);
+ assertSearchResults(
+ "lib/b137984.jar CJ(int) EXACT_MATCH"
+ );
+}
+public void testBug137984_cu() throws CoreException {
+ ICompilationUnit unit = getCompilationUnit("JavaSearchBugs", "src", "b137984", "C.java");
+ IField field = unit.getType("C").getField("c3");
+ search(field, REFERENCES);
+ assertSearchResults(
+ "src/b137984/C.java b137984.C(int) [c3] EXACT_MATCH"
+ );
+}
+public void testBug137984_wc() throws CoreException {
+ workingCopies = new ICompilationUnit[1];
+ workingCopies[0] = getWorkingCopy("/JavaSearchBugs/src/CW.java",
+ "public class CW {\n" +
+ " CW2 c2;\n" +
+ " CW2.CW3 c3;\n" +
+ " CW(int c) {\n" +
+ " c2 = new CW2(c);\n" +
+ " c3 = c2.new CW3(c);\n" +
+ " }\n" +
+ " class CW2 {\n" +
+ " CW2(int x) {}\n" +
+ " class CW3 {\n" +
+ " CW3(int x) {}\n" +
+ " }\n" +
+ " }\n" +
+ "}\n"
+ );
+ IField field = workingCopies[0].getType("CW").getField("c3");
+ search(field, REFERENCES);
+ assertSearchResults(
+ "src/CW.java CW(int) [c3] EXACT_MATCH"
+ );
+}
}
Index: workspace/JavaSearchBugs/.classpath
===================================================================
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/workspace/JavaSearchBugs/.classpath,v
retrieving revision 1.13
diff -u -r1.13 .classpath
--- workspace/JavaSearchBugs/.classpath 12 Apr 2006 08:51:37 -0000 1.13
+++ workspace/JavaSearchBugs/.classpath 21 Apr 2006 16:48:19 -0000
@@ -12,6 +12,7 @@
+
Index: workspace/JavaSearchBugs/lib/b137984.jar
===================================================================
RCS file: workspace/JavaSearchBugs/lib/b137984.jar
diff -N workspace/JavaSearchBugs/lib/b137984.jar
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ workspace/JavaSearchBugs/lib/b137984.jar 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,10 @@
+PK ”•4 META-INF/MANIFEST.MFþÊ óMÌËLK-.Ñ
+K-*ÎÌϳR0Ô3àåâå PK²î PK ”•4 CJ$CJ2$CJ3.classEPMKÃ@œMb¶M£?QkýÄCUÁR{Tz AJ薘@’ŠËƒüþ(ñmªxxóæÍÎîöëûãÀ‡ƒDƒ :§špXÞ\<‹Q&ò‡ÑM2—iÍ`×?ªŒZñÒ|AÚ¥ÊU=ep‡bx