Bug 559965 - No recompilation when deleting java file from
test-source-folder

Change-Id: I854478623755e5f30a7ab32ff826c61c60b2e873
diff --git a/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestAttributeBuilderTests.java b/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestAttributeBuilderTests.java
index b00aa4f..140ddd9 100644
--- a/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestAttributeBuilderTests.java
+++ b/org.eclipse.jdt.core.tests.builder/src/org/eclipse/jdt/core/tests/builder/TestAttributeBuilderTests.java
@@ -867,4 +867,39 @@
 		fullBuild();
 		expectingNoProblems();
 	}
+	public void testBug559965() throws JavaModelException {
+		// Bug 559965 - No recompilation when deleting java file from test-source-folder
+		IPath project1Path = env.addProject("Project1");
+		env.removePackageFragmentRoot(project1Path, "");
+		IPath src1 = env.addPackageFragmentRoot(project1Path, "src", null, "bin");
+		assertNotNull(src1);
+
+		IPath tests1 = env.addTestPackageFragmentRoot(project1Path, "tests");
+		env.addExternalJars(project1Path, Util.getJavaClassLibs());
+
+		env.addClass(tests1, "p1", "T1Class",
+				"package p1;\n" +
+				"\n" +
+				"public class T1Class {\n"+
+				"}\n"
+				);
+		env.addClass(tests1, "p1", "Test1",
+				"package p1;\n" +
+				"\n" +
+				"public class Test1 {\n" +
+				"	void test1() {\n" +
+				"		new T1Class();" +
+				"	}\n" +
+				"}\n" +
+				""
+				);
+
+		fullBuild();
+		expectingNoProblems();
+
+		env.removeClass(tests1, "p1/T1Class");
+		incrementalBuild();
+
+		expectingProblemsFor(env.getWorkspaceRootPath(), "Problem : T1Class cannot be resolved to a type [ resource : </Project1/tests/p1/Test1.java> range : <56,63> category : <40> severity : <2>]");
+	}
 }
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IncrementalImageBuilder.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IncrementalImageBuilder.java
index f4b786b..eaaf803 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IncrementalImageBuilder.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/builder/IncrementalImageBuilder.java
@@ -137,6 +137,9 @@
 
 			this.notifier.subTask(Messages.build_analyzingSources);
 			addAffectedSourceFiles();
+			if (this.testImageBuilder != null) {
+				this.testImageBuilder.addAffectedSourceFiles();
+			}
 			this.notifier.updateProgressDelta(0.05f);
 		}