Community
Participate
Working Groups
Reporter to follow up with more information.
The incremental builder is responsible for recompiling all files which it thinks may be affected by a change in a prerequisite. If a file has structural changes (addition of members, change in any of its signatures, ...), then all its dependents are recompiled. Dependents are found amongst files which have package name and simple name dependencies.
*** Bug 13029 has been marked as a duplicate of this bug. ***
So? Is there more to come?
Closing this PR. Reopen if you are provided with repeatable steps.
I have a testcase but it was determined that the reason the extra building was occurring was because their was a circular reference in the customer project dependencies. Closing.
Originator confused. Testcase has been provided. Will update with location of testcase.
The testcase has been placed on the ott7f phoenix archive under 12921. Please see the readme.txt for steps to reproduce.
In the 2.0 stream, only when actual deltas exist for a dependent project is its builder invoked. When cycles exist, the next incremental build will see deltas generated in the previous build... but unless further class files change, no more deltas will result & thus no more incremental builds. Obviously the better solution is to remove the cycles in the first place. So with a simple case of 2 projects that form a cycle, here's the trace when I make significant changes to source files: Full Build: Starting build of P1 @ Thu Apr 25 13:41:32 EDT 2002 FULL build About to compile D:/aM5/workspace.test/P1/src/p1/A.java Writing class file A.class About to read state... Successfully read state for P2 Finished build of P1 @ Thu Apr 25 13:41:34 EDT 2002 Starting build of P2 @ Thu Apr 25 13:41:34 EDT 2002 FULL build About to compile D:/aM5/workspace.test/P2/src/p2/B.java Writing class file B.class Finished build of P2 @ Thu Apr 25 13:41:34 EDT 2002 Forced Incremental Build: Starting build of P1 @ Thu Apr 25 13:41:39 EDT 2002 INCREMENTAL build Add dependents of changed class file D:p2/B adding dependents of B in p2 Finished build of P1 @ Thu Apr 25 13:41:39 EDT 2002 No reason to build P2 since it has seen all the deltas from its dependent projects ANY OTHER INCREMENTAL BUILDS DO NOTHING... Add a field to a source file in P1: Starting build of P1 @ Thu Apr 25 13:41:51 EDT 2002 INCREMENTAL build Compile this changed source file D:/aM5/workspace.test/P1/src/p1/A.java About to compile D:/aM5/workspace.test/P1/src/p1/A.java Type has structural changes p1/A adding dependents of A in p1 Writing class file A.class Finished build of P1 @ Thu Apr 25 13:41:51 EDT 2002 Starting build of P2 @ Thu Apr 25 13:41:51 EDT 2002 INCREMENTAL build Add dependents of changed class file D:p1/A adding dependents of A in p1 Finished build of P2 @ Thu Apr 25 13:41:51 EDT 2002 ANY OTHER INCREMENTAL BUILDS DO NOTHING... Add a field to a source file in P2: Starting build of P1 @ Thu Apr 25 13:42:11 EDT 2002 INCREMENTAL build Finished build of P1 @ Thu Apr 25 13:42:11 EDT 2002 Starting build of P2 @ Thu Apr 25 13:42:11 EDT 2002 INCREMENTAL build Compile this changed source file D:/aM5/workspace.test/P2/src/p2/B.java About to compile D:/aM5/workspace.test/P2/src/p2/B.java Type has structural changes p2/B adding dependents of B in p2 Writing class file B.class Finished build of P2 @ Thu Apr 25 13:42:11 EDT 2002 Forced Incremental Build: Starting build of P1 @ Thu Apr 25 13:42:16 EDT 2002 INCREMENTAL build Add dependents of changed class file D:p2/B adding dependents of B in p2 Finished build of P1 @ Thu Apr 25 13:42:16 EDT 2002 No reason to build P2 since it has seen all the deltas from its dependent projects ANY OTHER INCREMENTAL BUILDS DO NOTHING