View | Details | Raw Unified | Return to bug 98684 | Differences between
and this patch

Collapse All | Expand All

(-)search/org/eclipse/jdt/internal/core/search/BasicSearchEngine.java (+1 lines)
Lines 629-634 Link Here
629
			if (copies != null) {
629
			if (copies != null) {
630
				for (int i = 0, length = copies.length; i < length; i++) {
630
				for (int i = 0, length = copies.length; i < length; i++) {
631
					ICompilationUnit workingCopy = copies[i];
631
					ICompilationUnit workingCopy = copies[i];
632
					if (!scope.encloses(workingCopy)) continue;
632
					final String path = workingCopy.getPath().toString();
633
					final String path = workingCopy.getPath().toString();
633
					if (workingCopy.isConsistent()) {
634
					if (workingCopy.isConsistent()) {
634
						IPackageDeclaration[] packageDeclarations = workingCopy.getPackageDeclarations();
635
						IPackageDeclaration[] packageDeclarations = workingCopy.getPackageDeclarations();
(-)search/org/eclipse/jdt/internal/core/search/JavaSearchScope.java (-2 / +7 lines)
Lines 210-217 Link Here
210
				add(relativePath, containerPathToString, true/*package*/, null);
210
				add(relativePath, containerPathToString, true/*package*/, null);
211
			} else {
211
			} else {
212
				IResource resource = element.getResource();
212
				IResource resource = element.getResource();
213
				if (resource != null && resource.isAccessible()) {
213
				if (resource != null) {
214
					containerPath = root.getKind() == IPackageFragmentRoot.K_SOURCE ? root.getParent().getPath() : root.getPath();
214
					if (resource.isAccessible()) {
215
						containerPath = root.getKind() == IPackageFragmentRoot.K_SOURCE ? root.getParent().getPath() : root.getPath();
216
					} else {
217
						// for working copies, get resource container full path
218
						containerPath = resource.getParent().getFullPath();
219
					}
215
					containerPathToString = containerPath.getDevice() == null ? containerPath.toString() : containerPath.toOSString();
220
					containerPathToString = containerPath.getDevice() == null ? containerPath.toString() : containerPath.toOSString();
216
					String relativePath = Util.relativePath(resource.getFullPath(), containerPath.segmentCount());
221
					String relativePath = Util.relativePath(resource.getFullPath(), containerPath.segmentCount());
217
					add(relativePath, containerPathToString, true/*package*/, null);
222
					add(relativePath, containerPathToString, true/*package*/, null);
(-)src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java (-15 / +15 lines)
Lines 45-51 Link Here
45
static {
45
static {
46
//	org.eclipse.jdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
46
//	org.eclipse.jdt.internal.core.search.BasicSearchEngine.VERBOSE = true;
47
//	org.eclipse.jdt.internal.codeassist.SelectionEngine.DEBUG = true;
47
//	org.eclipse.jdt.internal.codeassist.SelectionEngine.DEBUG = true;
48
//	TESTS_PREFIX =  "testBug110336";
48
//	TESTS_PREFIX =  "testBug110060";
49
//	TESTS_NAMES = new String[] { "testBug126330" };
49
//	TESTS_NAMES = new String[] { "testBug126330" };
50
//	TESTS_NUMBERS = new int[] { 124469 };
50
//	TESTS_NUMBERS = new int[] { 124469 };
51
//	TESTS_RANGE = new int[] { 83304, -1 };
51
//	TESTS_RANGE = new int[] { 83304, -1 };
Lines 4539-4545 Link Here
4539
		"AA".toCharArray(),
4539
		"AA".toCharArray(),
4540
		SearchPattern.R_CAMELCASE_MATCH,
4540
		SearchPattern.R_CAMELCASE_MATCH,
4541
		TYPE,
4541
		TYPE,
4542
		getJavaSearchScope(),
4542
		getJavaSearchScopeBugs(),
4543
		requestor,
4543
		requestor,
4544
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4544
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4545
		null
4545
		null
Lines 4563-4569 Link Here
4563
		"AA".toCharArray(),
4563
		"AA".toCharArray(),
4564
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
4564
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
4565
		TYPE,
4565
		TYPE,
4566
		getJavaSearchScope(),
4566
		getJavaSearchScopeBugs(),
4567
		requestor,
4567
		requestor,
4568
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4568
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4569
		null
4569
		null
Lines 4587-4593 Link Here
4587
		"AA".toCharArray(),
4587
		"AA".toCharArray(),
4588
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
4588
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
4589
		TYPE,
4589
		TYPE,
4590
		getJavaSearchScope(),
4590
		getJavaSearchScopeBugs(),
4591
		requestor,
4591
		requestor,
4592
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4592
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4593
		null
4593
		null
Lines 4611-4617 Link Here
4611
		"AA".toCharArray(),
4611
		"AA".toCharArray(),
4612
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4612
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4613
		TYPE,
4613
		TYPE,
4614
		getJavaSearchScope(),
4614
		getJavaSearchScopeBugs(),
4615
		requestor,
4615
		requestor,
4616
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4616
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4617
		null
4617
		null
Lines 4635-4641 Link Here
4635
		"AA".toCharArray(),
4635
		"AA".toCharArray(),
4636
		SearchPattern.R_PREFIX_MATCH,
4636
		SearchPattern.R_PREFIX_MATCH,
4637
		TYPE,
4637
		TYPE,
4638
		getJavaSearchScope(),
4638
		getJavaSearchScopeBugs(),
4639
		requestor,
4639
		requestor,
4640
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4640
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4641
		null
4641
		null
Lines 4657-4663 Link Here
4657
		"AA".toCharArray(),
4657
		"AA".toCharArray(),
4658
		SearchPattern.R_CASE_SENSITIVE,
4658
		SearchPattern.R_CASE_SENSITIVE,
4659
		TYPE,
4659
		TYPE,
4660
		getJavaSearchScope(),
4660
		getJavaSearchScopeBugs(),
4661
		requestor,
4661
		requestor,
4662
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4662
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4663
		null
4663
		null
Lines 4678-4684 Link Here
4678
		"AA".toCharArray(),
4678
		"AA".toCharArray(),
4679
		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4679
		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4680
		TYPE,
4680
		TYPE,
4681
		getJavaSearchScope(),
4681
		getJavaSearchScopeBugs(),
4682
		requestor,
4682
		requestor,
4683
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4683
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4684
		null
4684
		null
Lines 4700-4706 Link Here
4700
		"aa".toCharArray(),
4700
		"aa".toCharArray(),
4701
		SearchPattern.R_CAMELCASE_MATCH,
4701
		SearchPattern.R_CAMELCASE_MATCH,
4702
		TYPE,
4702
		TYPE,
4703
		getJavaSearchScope(),
4703
		getJavaSearchScopeBugs(),
4704
		requestor,
4704
		requestor,
4705
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4705
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4706
		null
4706
		null
Lines 4721-4727 Link Here
4721
		"aa".toCharArray(),
4721
		"aa".toCharArray(),
4722
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
4722
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH,
4723
		TYPE,
4723
		TYPE,
4724
		getJavaSearchScope(),
4724
		getJavaSearchScopeBugs(),
4725
		requestor,
4725
		requestor,
4726
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4726
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4727
		null
4727
		null
Lines 4743-4749 Link Here
4743
		"aa".toCharArray(),
4743
		"aa".toCharArray(),
4744
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
4744
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_CASE_SENSITIVE,
4745
		TYPE,
4745
		TYPE,
4746
		getJavaSearchScope(),
4746
		getJavaSearchScopeBugs(),
4747
		requestor,
4747
		requestor,
4748
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4748
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4749
		null
4749
		null
Lines 4764-4770 Link Here
4764
		"aa".toCharArray(),
4764
		"aa".toCharArray(),
4765
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4765
		SearchPattern.R_CAMELCASE_MATCH | SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4766
		TYPE,
4766
		TYPE,
4767
		getJavaSearchScope(),
4767
		getJavaSearchScopeBugs(),
4768
		requestor,
4768
		requestor,
4769
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4769
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4770
		null
4770
		null
Lines 4785-4791 Link Here
4785
		"aa".toCharArray(),
4785
		"aa".toCharArray(),
4786
		SearchPattern.R_PREFIX_MATCH,
4786
		SearchPattern.R_PREFIX_MATCH,
4787
		TYPE,
4787
		TYPE,
4788
		getJavaSearchScope(),
4788
		getJavaSearchScopeBugs(),
4789
		requestor,
4789
		requestor,
4790
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4790
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4791
		null
4791
		null
Lines 4807-4813 Link Here
4807
		"aa".toCharArray(),
4807
		"aa".toCharArray(),
4808
		SearchPattern.R_CASE_SENSITIVE,
4808
		SearchPattern.R_CASE_SENSITIVE,
4809
		TYPE,
4809
		TYPE,
4810
		getJavaSearchScope(),
4810
		getJavaSearchScopeBugs(),
4811
		requestor,
4811
		requestor,
4812
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4812
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4813
		null
4813
		null
Lines 4828-4834 Link Here
4828
		"aa".toCharArray(),
4828
		"aa".toCharArray(),
4829
		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4829
		SearchPattern.R_PREFIX_MATCH | SearchPattern.R_CASE_SENSITIVE,
4830
		TYPE,
4830
		TYPE,
4831
		getJavaSearchScope(),
4831
		getJavaSearchScopeBugs(),
4832
		requestor,
4832
		requestor,
4833
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4833
		IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
4834
		null
4834
		null
(-)src/org/eclipse/jdt/core/tests/model/WorkingCopySearchTests.java (-2 / +53 lines)
Lines 16-21 Link Here
16
import org.eclipse.core.runtime.IPath;
16
import org.eclipse.core.runtime.IPath;
17
import org.eclipse.jdt.core.ICompilationUnit;
17
import org.eclipse.jdt.core.ICompilationUnit;
18
import org.eclipse.jdt.core.IJavaElement;
18
import org.eclipse.jdt.core.IJavaElement;
19
import org.eclipse.jdt.core.IJavaProject;
19
import org.eclipse.jdt.core.IMethod;
20
import org.eclipse.jdt.core.IMethod;
20
import org.eclipse.jdt.core.IType;
21
import org.eclipse.jdt.core.IType;
21
import org.eclipse.jdt.core.JavaModelException;
22
import org.eclipse.jdt.core.JavaModelException;
Lines 33-39 Link Here
33
	// All specified tests which do not belong to the class are skipped...
34
	// All specified tests which do not belong to the class are skipped...
34
	static {
35
	static {
35
//		TESTS_PREFIX =  "testAllTypeNames";
36
//		TESTS_PREFIX =  "testAllTypeNames";
36
//		TESTS_NAMES = new String[] { "testAllTypeNamesBug99915" };
37
//		TESTS_NAMES = new String[] { "testAllTypeNamesBug98684" };
37
//		TESTS_NUMBERS = new int[] { 8 };
38
//		TESTS_NUMBERS = new int[] { 8 };
38
//		TESTS_RANGE = new int[] { -1, -1 };
39
//		TESTS_RANGE = new int[] { -1, -1 };
39
	}
40
	}
Lines 278-284 Link Here
278
			"wc.AAABBB",
279
			"wc.AAABBB",
279
			requestor);
280
			requestor);
280
	}
281
	}
281
	
282
283
	/**
284
	 * Bug 98684: [1.5][search] Refactoring: renaming of field of a (complex) parametrized type does not replace all occurrences
285
	 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=98684"
286
	 */
287
	public void testAllTypeNamesBug98684() throws CoreException {
288
		try {
289
			IJavaProject[] projects = new IJavaProject[2];
290
			projects[0] = createJavaProject("P1");
291
			projects[1] = createJavaProject("P2");
292
			workingCopies = new ICompilationUnit[2];
293
			workingCopies[0] = getWorkingCopy("/P1/p1/A1.java",
294
				"package p1;\n" + 
295
				"public class A1 {\n" + 
296
				"	public static class A1Inner1 {}" + 
297
				"	public static class A1Inner2 {}" + 
298
				"}"
299
			);
300
			workingCopies[1] = getWorkingCopy("/P2/p2/A2.java",
301
				"package p2;\n" + 
302
				"public class A2 {\n" + 
303
				"	public static class A2Inner2 {}" + 
304
				"	public static class A2Inner2 {}" + 
305
				"}"
306
			);
307
			TypeNameRequestor requestor =  new SearchTests.SearchTypeNameRequestor();
308
			IJavaSearchScope scope = 	SearchEngine.createJavaSearchScope(new IJavaElement[] { projects[1] });
309
			new SearchEngine(this.workingCopies).searchAllTypeNames(
310
				null,
311
				"A".toCharArray(),
312
				SearchPattern.R_PREFIX_MATCH,
313
				TYPE,
314
				scope,
315
				requestor,
316
				IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
317
				null
318
			);
319
			this.discard = false;
320
			assertSearchResults(
321
				"Unexpected all type names",
322
				"p2.A2\n" + 
323
				"p2.A2$A2Inner2\n" + 
324
				"p2.A2$A2Inner2",
325
				requestor);
326
		}
327
		finally {
328
			deleteProject("P1");
329
			deleteProject("P2");
330
		}
331
	}
332
282
	/**
333
	/**
283
	 * Declaration of referenced types test.
334
	 * Declaration of referenced types test.
284
	 * (Regression test for bug 5355 search: NPE in searchDeclarationsOfReferencedTypes  )
335
	 * (Regression test for bug 5355 search: NPE in searchDeclarationsOfReferencedTypes  )

Return to bug 98684