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

Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/model/JavaSearchBugsTests.java (+24 lines)
Lines 8337-8342 Link Here
8337
		removeClasspathEntry(JAVA_PROJECT, libPath);
8337
		removeClasspathEntry(JAVA_PROJECT, libPath);
8338
	}
8338
	}
8339
}
8339
}
8340
public void testBug199004_DefaultSystemLibraries() throws CoreException {
8341
	DefaultContainerInitializer intializer = new DefaultContainerInitializer(new String[] {"JavaSearchBugs", "/JavaSearchBugs/lib/b199004.jar"}) {
8342
		protected DefaultContainer newContainer(char[][] libPaths) {
8343
			return new DefaultContainer(libPaths) {
8344
				public int getKind() {
8345
					return IClasspathContainer.K_DEFAULT_SYSTEM;
8346
				}
8347
			};
8348
		}
8349
	};
8350
	ContainerInitializer.setInitializer(intializer);
8351
	Path libPath = new Path("org.eclipse.jdt.core.tests.model.TEST_CONTAINER");
8352
	addClasspathEntry(JAVA_PROJECT, JavaCore.newContainerEntry(libPath));
8353
	try {
8354
		IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { JAVA_PROJECT }, IJavaSearchScope.SYSTEM_LIBRARIES);
8355
		search("length", IJavaSearchConstants.METHOD, IJavaSearchConstants.DECLARATIONS, scope);
8356
		assertSearchResults(
8357
			"lib/b199004.jar int Test.length() EXACT_MATCH"
8358
		);
8359
	}
8360
	finally {
8361
		removeClasspathEntry(JAVA_PROJECT, libPath);
8362
	}
8363
}
8340
public void testBug199004_ApplicationLibraries() throws CoreException {
8364
public void testBug199004_ApplicationLibraries() throws CoreException {
8341
	DefaultContainerInitializer intializer = new DefaultContainerInitializer(new String[] {"JavaSearchBugs", "/JavaSearchBugs/lib/b199004.jar"}) {
8365
	DefaultContainerInitializer intializer = new DefaultContainerInitializer(new String[] {"JavaSearchBugs", "/JavaSearchBugs/lib/b199004.jar"}) {
8342
		protected DefaultContainer newContainer(char[][] libPaths) {
8366
		protected DefaultContainer newContainer(char[][] libPaths) {
(-)search/org/eclipse/jdt/internal/core/search/JavaSearchScope.java (-10 / +17 lines)
Lines 134-140 Link Here
134
					rawEntry = (IClasspathEntry) rootPathToRawEntries.get(entry.getPath());
134
					rawEntry = (IClasspathEntry) rootPathToRawEntries.get(entry.getPath());
135
				}
135
				}
136
				if (rawEntry == null) break;
136
				if (rawEntry == null) break;
137
				switch (rawEntry.getEntryKind()) {
137
				rawKind: switch (rawEntry.getEntryKind()) {
138
					case IClasspathEntry.CPE_LIBRARY:
138
					case IClasspathEntry.CPE_LIBRARY:
139
					case IClasspathEntry.CPE_VARIABLE:
139
					case IClasspathEntry.CPE_VARIABLE:
140
						if ((includeMask & APPLICATION_LIBRARIES) != 0) {
140
						if ((includeMask & APPLICATION_LIBRARIES) != 0) {
Lines 149-163 Link Here
149
					case IClasspathEntry.CPE_CONTAINER:
149
					case IClasspathEntry.CPE_CONTAINER:
150
						IClasspathContainer container = JavaCore.getClasspathContainer(rawEntry.getPath(), javaProject);
150
						IClasspathContainer container = JavaCore.getClasspathContainer(rawEntry.getPath(), javaProject);
151
						if (container == null) break;
151
						if (container == null) break;
152
						int containerKind = container.getKind();
152
						switch (container.getKind()) {
153
						if ((containerKind == IClasspathContainer.K_APPLICATION && (includeMask & APPLICATION_LIBRARIES) != 0)
153
							case IClasspathContainer.K_APPLICATION:
154
								|| (containerKind == IClasspathContainer.K_SYSTEM && (includeMask & SYSTEM_LIBRARIES) != 0)) {
154
								if ((includeMask & APPLICATION_LIBRARIES) == 0) break rawKind;
155
							IPath path = entry.getPath();
155
								break;
156
							if (pathToAdd == null || pathToAdd.equals(path)) {
156
							case IClasspathContainer.K_SYSTEM:
157
								String pathToString = path.getDevice() == null ? path.toString() : path.toOSString();
157
							case IClasspathContainer.K_DEFAULT_SYSTEM:
158
								add(projectPath.toString(), "", pathToString, false/*not a package*/, access); //$NON-NLS-1$
158
								if ((includeMask & SYSTEM_LIBRARIES) == 0) break rawKind;
159
								addEnclosingProjectOrJar(path);
159
								break;
160
							}
160
							default:
161
								break rawKind;
162
						}
163
						IPath path = entry.getPath();
164
						if (pathToAdd == null || pathToAdd.equals(path)) {
165
							String pathToString = path.getDevice() == null ? path.toString() : path.toOSString();
166
							add(projectPath.toString(), "", pathToString, false/*not a package*/, access); //$NON-NLS-1$
167
							addEnclosingProjectOrJar(path);
161
						}
168
						}
162
						break;
169
						break;
163
				}
170
				}

Return to bug 199004