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

Collapse All | Expand All

(-)model/org/eclipse/jdt/internal/core/ClasspathEntry.java (-1 / +2 lines)
Lines 1513-1519 Link Here
1513
		// retrieve resolved classpath
1513
		// retrieve resolved classpath
1514
		IClasspathEntry[] classpath;
1514
		IClasspathEntry[] classpath;
1515
		try {
1515
		try {
1516
			classpath = ((JavaProject)javaProject).resolveClasspath(rawClasspath);
1516
			// don't resolve chained libraries: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=259685
1517
			classpath = ((JavaProject)javaProject).resolveClasspath(rawClasspath, false/*don't use previous session*/, false/*don't resolve chained libraries*/).resolvedClasspath;
1517
		} catch(JavaModelException e){
1518
		} catch(JavaModelException e){
1518
			return e.getJavaModelStatus();
1519
			return e.getJavaModelStatus();
1519
		}
1520
		}
(-)model/org/eclipse/jdt/internal/core/JavaProject.java (-12 / +16 lines)
Lines 2473-2479 Link Here
2473
	 * Resolve the given raw classpath.
2473
	 * Resolve the given raw classpath.
2474
	 */
2474
	 */
2475
	public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath) throws JavaModelException {
2475
	public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath) throws JavaModelException {
2476
		return resolveClasspath(rawClasspath, false/*don't use previous session*/).resolvedClasspath;
2476
		return resolveClasspath(rawClasspath, false/*don't use previous session*/, true/*resolve chained libraries*/).resolvedClasspath;
2477
	}
2477
	}
2478
	
2478
	
2479
	class ResolvedClasspath {
2479
	class ResolvedClasspath {
Lines 2483-2489 Link Here
2483
		Map rootPathToResolvedEntries = new HashMap();
2483
		Map rootPathToResolvedEntries = new HashMap();
2484
	}
2484
	}
2485
	
2485
	
2486
	private ResolvedClasspath resolveClasspath(IClasspathEntry[] rawClasspath, boolean usePreviousSession) throws JavaModelException {
2486
	public ResolvedClasspath resolveClasspath(IClasspathEntry[] rawClasspath, boolean usePreviousSession, boolean resolveChainedLibraries) throws JavaModelException {
2487
		JavaModelManager manager = JavaModelManager.getJavaModelManager();
2487
		JavaModelManager manager = JavaModelManager.getJavaModelManager();
2488
		ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager();
2488
		ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager();
2489
		ResolvedClasspath result = new ResolvedClasspath();
2489
		ResolvedClasspath result = new ResolvedClasspath();
Lines 2509-2515 Link Here
2509
					if (resolvedEntry == null) {
2509
					if (resolvedEntry == null) {
2510
						result.unresolvedEntryStatus = new JavaModelStatus(IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND, this, rawEntry.getPath());
2510
						result.unresolvedEntryStatus = new JavaModelStatus(IJavaModelStatusConstants.CP_VARIABLE_PATH_UNBOUND, this, rawEntry.getPath());
2511
					} else {
2511
					} else {
2512
						if (resolvedEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
2512
						if (resolveChainedLibraries && resolvedEntry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
2513
							// resolve Class-Path: in manifest
2513
							// resolve Class-Path: in manifest
2514
							ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries();
2514
							ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries();
2515
							for (int j = 0, length2 = extraEntries.length; j < length2; j++) {
2515
							for (int j = 0, length2 = extraEntries.length; j < length2; j++) {
Lines 2551-2560 Link Here
2551
							// resolve ".." in library path
2551
							// resolve ".." in library path
2552
							cEntry = cEntry.resolvedDotDot();
2552
							cEntry = cEntry.resolvedDotDot();
2553
							
2553
							
2554
							// resolve Class-Path: in manifest
2554
							if (resolveChainedLibraries) {
2555
							ClasspathEntry[] extraEntries = cEntry.resolvedChainedLibraries();
2555
								// resolve Class-Path: in manifest
2556
							for (int k = 0, length2 = extraEntries.length; k < length2; k++) {
2556
								ClasspathEntry[] extraEntries = cEntry.resolvedChainedLibraries();
2557
								addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager);
2557
								for (int k = 0, length2 = extraEntries.length; k < length2; k++) {
2558
									addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager);
2559
								}
2558
							}
2560
							}
2559
						}
2561
						}
2560
						addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager);
2562
						addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager);
Lines 2565-2574 Link Here
2565
					// resolve ".." in library path
2567
					// resolve ".." in library path
2566
					resolvedEntry = ((ClasspathEntry) rawEntry).resolvedDotDot();
2568
					resolvedEntry = ((ClasspathEntry) rawEntry).resolvedDotDot();
2567
					
2569
					
2568
					// resolve Class-Path: in manifest
2570
					if (resolveChainedLibraries) {
2569
					ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries();
2571
						// resolve Class-Path: in manifest
2570
					for (int k = 0, length2 = extraEntries.length; k < length2; k++) {
2572
						ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries();
2571
						addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager);
2573
						for (int k = 0, length2 = extraEntries.length; k < length2; k++) {
2574
							addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager);
2575
						}
2572
					}
2576
					}
2573
2577
2574
					addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager);
2578
					addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager);
Lines 2618-2624 Link Here
2618
				timeStamp = perProjectInfo.rawTimeStamp;
2622
				timeStamp = perProjectInfo.rawTimeStamp;
2619
			}
2623
			}
2620
			
2624
			
2621
			ResolvedClasspath result = resolveClasspath(rawClasspath, usePreviousSession);
2625
			ResolvedClasspath result = resolveClasspath(rawClasspath, usePreviousSession, true/*resolve chained libraries*/);
2622
2626
2623
			if (CP_RESOLUTION_BP_LISTENERS != null)
2627
			if (CP_RESOLUTION_BP_LISTENERS != null)
2624
				breakpoint(2, this);
2628
				breakpoint(2, this);

Return to bug 259685