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);
}