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

(-)model/org/eclipse/jdt/internal/core/DeltaProcessor.java (+1 lines)
Lines 2133-2138 Link Here
2133
					Iterator iterator = rootList.iterator();
2133
					Iterator iterator = rootList.iterator();
2134
					while (iterator.hasNext()) {
2134
					while (iterator.hasNext()) {
2135
						childRootInfo = (RootInfo) iterator.next();
2135
						childRootInfo = (RootInfo) iterator.next();
2136
						this.currentElement = null; // ensure that 2 roots refering to the same resource don't share the current element (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=210746 )
2136
						this.traverseDelta(child, IJavaElement.PACKAGE_FRAGMENT_ROOT, childRootInfo, null); // binary output of childRootInfo.project cannot be this root
2137
						this.traverseDelta(child, IJavaElement.PACKAGE_FRAGMENT_ROOT, childRootInfo, null); // binary output of childRootInfo.project cannot be this root
2137
					}
2138
					}
2138
				}
2139
				}
(-)src/org/eclipse/jdt/core/tests/model/ReconcilerTests.java (+55 lines)
Lines 18-23 Link Here
18
18
19
import org.eclipse.core.resources.IResource;
19
import org.eclipse.core.resources.IResource;
20
import org.eclipse.core.resources.IWorkspaceRunnable;
20
import org.eclipse.core.resources.IWorkspaceRunnable;
21
import org.eclipse.core.resources.IncrementalProjectBuilder;
21
import org.eclipse.core.runtime.CoreException;
22
import org.eclipse.core.runtime.CoreException;
22
import org.eclipse.core.runtime.ILogListener;
23
import org.eclipse.core.runtime.ILogListener;
23
import org.eclipse.core.runtime.IProgressMonitor;
24
import org.eclipse.core.runtime.IProgressMonitor;
Lines 815-820 Link Here
815
	);
816
	);
816
}
817
}
817
/*
818
/*
819
 * Ensures that changing a binary folder used as class folder in 2 projects doesn't cause the old binary to be seen
820
 * (regression test for https://bugs.eclipse.org/bugs/show_bug.cgi?id=210746 )
821
 */
822
public void testChangeClassFolder() throws CoreException {
823
	try {
824
		createJavaProject("P1", new String[] {"src"}, new String[] {"JCL_LIB"}, "bin");
825
		createFolder("/P1/src/p");
826
		createFile(
827
			"/P1/src/p/X.java",
828
			"package p;\n" +
829
			"public class X {\n" +
830
			"}"
831
		);
832
		getProject("P1").build(IncrementalProjectBuilder.FULL_BUILD, null);
833
		createJavaProject("P2", new String[0], new String[] {"/P1/bin"}, "bin");
834
		createJavaProject("P3", new String[] {"src"}, new String[] {"JCL_LIB", "/P1/bin"}, "bin");
835
		setUpWorkingCopy(
836
			"/P3/src/q/Y.java",
837
			"package q;\n" +
838
			"import p.X;\n" +
839
			"public class Y {\n" +
840
			"  void foo(X x) {\n" +
841
			"  }\n"+
842
			"}"
843
		);
844
		editFile(
845
			"/P1/src/p/X.java",
846
			"package p;\n" +
847
			"public class X {\n" +
848
			"  public void bar() {\n" +
849
			"  }\n" +
850
			"}"
851
		);
852
		getProject("P1").build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
853
		setWorkingCopyContents(
854
			"package q;\n" +
855
			"import p.X;\n" +
856
			"public class Y {\n" +
857
			"  void foo(X x) {\n" +
858
			"    x.bar();\n" +
859
			"  }\n"+
860
			"}"
861
		);
862
		this.workingCopy.reconcile(ICompilationUnit.NO_AST, false, null, null);
863
		assertProblems(
864
			"Unexpected problems", 
865
			"----------\n" + 
866
			"----------\n"
867
		);
868
	} finally {
869
		deleteProjects(new String[] {"P1", "P2", "P3"});
870
	}
871
}
872
/*
818
 * Ensures that changing and external jar and refreshing takes the change into account
873
 * Ensures that changing and external jar and refreshing takes the change into account
819
 * (regression test for bug 134110 [regression] Does not pick-up interface changes from classes in the build path)
874
 * (regression test for bug 134110 [regression] Does not pick-up interface changes from classes in the build path)
820
 */
875
 */

Return to bug 210746