### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: buildnotes_jdt-core.html =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/buildnotes_jdt-core.html,v retrieving revision 1.5936 diff -u -r1.5936 buildnotes_jdt-core.html --- buildnotes_jdt-core.html 22 Jun 2007 15:50:32 -0000 1.5936 +++ buildnotes_jdt-core.html 26 Jun 2007 11:04:19 -0000 @@ -53,7 +53,9 @@

What's new in this drop

Problem Reports Fixed

-191908 +194185 +[search] for package declarations finds also subpackages +
191908 [1.5][compiler] Missing strike through for deprecated declaration fragment
192285 [formatter] Java source formatter not working if class has annotation on single line multiple fields declaration. Index: search/org/eclipse/jdt/internal/core/search/matching/MatchLocator.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MatchLocator.java,v retrieving revision 1.292 diff -u -r1.292 MatchLocator.java --- search/org/eclipse/jdt/internal/core/search/matching/MatchLocator.java 11 May 2007 16:03:13 -0000 1.292 +++ search/org/eclipse/jdt/internal/core/search/matching/MatchLocator.java 26 Jun 2007 11:04:20 -0000 @@ -1255,7 +1255,7 @@ } // Get all project package fragment names this.nameLookup = ((JavaProject) projects[i]).newNameLookup(this.workingCopies); - IPackageFragment[] packageFragments = this.nameLookup.findPackageFragments(new String(pkgPattern.pkgName), true, true); + IPackageFragment[] packageFragments = this.nameLookup.findPackageFragments(new String(pkgPattern.pkgName), false, true); int pLength = packageFragments == null ? 0 : packageFragments.length; // Report matches avoiding duplicate names for (int p=0; p nameLength) return false; @@ -1942,7 +1942,7 @@ if (!compoundName[i].equalsIgnoreCase(prefix[i])) return false; } - return compoundName[prefixLength-1].toLowerCase().startsWith(prefix[prefixLength-1].toLowerCase()); + return (partialMatch || prefixLength == nameLength) && compoundName[prefixLength-1].toLowerCase().startsWith(prefix[prefixLength-1].toLowerCase()); } /* Index: model/org/eclipse/jdt/internal/core/NameLookup.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/NameLookup.java,v retrieving revision 1.115 diff -u -r1.115 NameLookup.java --- model/org/eclipse/jdt/internal/core/NameLookup.java 27 Apr 2007 15:51:38 -0000 1.115 +++ model/org/eclipse/jdt/internal/core/NameLookup.java 26 Jun 2007 11:04:19 -0000 @@ -491,7 +491,7 @@ if (pkgName != null) { boolean match = hasPatternChars ? Util.matchesWithIgnoreCase(pkgName, name) - : Util.startsWithIgnoreCase(pkgName, splittedName); + : Util.startsWithIgnoreCase(pkgName, splittedName, partialMatch); if (match) { Object value = this.packageFragments.valueTable[i]; if (value instanceof PackageFragmentRoot) { @@ -857,7 +857,7 @@ if (requestor.isCanceled()) return; String[] pkgName = (String[]) keys[i]; - if (pkgName != null && Util.startsWithIgnoreCase(pkgName, splittedName)) { + if (pkgName != null && Util.startsWithIgnoreCase(pkgName, splittedName, partialMatch)) { Object value = this.packageFragments.valueTable[i]; if (value instanceof PackageFragmentRoot) { PackageFragmentRoot root = (PackageFragmentRoot) value; #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.107 diff -u -r1.107 JavaSearchBugsTests.java --- src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 11 May 2007 16:03:16 -0000 1.107 +++ src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java 26 Jun 2007 11:04:23 -0000 @@ -7996,4 +7996,22 @@ packageCollector); } +/** + * @bug 194185 [search] for package declarations finds also subpackages + * @test Ensure that exact package is found when no + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=194185" + */ +public void testBug194185() throws CoreException { + JavaSearchResultCollector packageCollector = new JavaSearchResultCollector(true); + search( + "java", + PACKAGE, + DECLARATIONS, + SearchEngine.createWorkspaceScope(), + packageCollector); + assertSearchResults( + ""+ getExternalJCLPathString("1.5") + " java", + packageCollector); +} + } \ No newline at end of file