View | Details | Raw Unified | Return to bug 261594
Collapse All | Expand All

(-)src/org/eclipse/jdt/core/tests/model/ClasspathTests.java (+20 lines)
Lines 526-531 Link Here
526
}
526
}
527
527
528
/*
528
/*
529
 * Ensures that creating an external library folder referenced by a library entry and refreshing the workspace doesn't log a NPE
530
 * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=262363 )
531
 */
532
public void testAddExternalLibFolder7() throws CoreException {
533
	try {
534
		createJavaProject("P", new String[0], new String[] {getExternalResourcePath("externalLib")}, "");
535
		waitForAutoBuild();
536
		createExternalFolder("externalLib");
537
		startLogListening(null/*listen to Platform's log*/);
538
		getWorkspaceRoot().refreshLocal(IResource.DEPTH_INFINITE, null);
539
		waitForManualRefresh();
540
		assertLogEquals("");
541
	} finally {
542
		stopLogListening();
543
		deleteExternalResource("externalLib");
544
		deleteProject("P");
545
	}
546
}
547
548
/*
529
 * Ensures that adding a library entry for an existing external ZIP archive doesn't generate a marker
549
 * Ensures that adding a library entry for an existing external ZIP archive doesn't generate a marker
530
 */
550
 */
531
public void testAddZIPArchive1() throws CoreException {
551
public void testAddZIPArchive1() throws CoreException {
(-)model/org/eclipse/jdt/internal/core/DeltaProcessor.java (-1 / +13 lines)
Lines 21-26 Link Here
21
import org.eclipse.core.resources.IResourceChangeEvent;
21
import org.eclipse.core.resources.IResourceChangeEvent;
22
import org.eclipse.core.resources.IResourceDelta;
22
import org.eclipse.core.resources.IResourceDelta;
23
import org.eclipse.core.resources.IResourceDeltaVisitor;
23
import org.eclipse.core.resources.IResourceDeltaVisitor;
24
import org.eclipse.core.resources.IWorkspace;
24
import org.eclipse.core.resources.IWorkspaceRoot;
25
import org.eclipse.core.resources.IWorkspaceRoot;
25
import org.eclipse.core.resources.IWorkspaceRunnable;
26
import org.eclipse.core.resources.IWorkspaceRunnable;
26
import org.eclipse.core.resources.ResourcesPlugin;
27
import org.eclipse.core.resources.ResourcesPlugin;
Lines 1897-1903 Link Here
1897
				return;
1898
				return;
1898
1899
1899
			case IResourceChangeEvent.PRE_REFRESH:
1900
			case IResourceChangeEvent.PRE_REFRESH:
1900
				JavaModelManager.getExternalManager().refreshReferences((IProject) resource, null);
1901
				IProject [] projects = null;
1902
				Object o = event.getSource();
1903
				if (o instanceof IProject) {
1904
					projects = new IProject[] { (IProject) o };
1905
				} else if (o instanceof IWorkspace) {
1906
					// https://bugs.eclipse.org/bugs/show_bug.cgi?id=261594. The single workspace refresh
1907
					// notification we see, implies that all projects are about to be refreshed.
1908
					 projects = ((IWorkspace) o).getRoot().getProjects(IContainer.INCLUDE_HIDDEN);
1909
				}
1910
				for (int i = 0; projects != null && i < projects.length; i++) {
1911
					JavaModelManager.getExternalManager().refreshReferences(projects[i], null);
1912
				}
1901
				return;
1913
				return;
1902
1914
1903
			case IResourceChangeEvent.POST_CHANGE :
1915
			case IResourceChangeEvent.POST_CHANGE :

Return to bug 261594