Bug 99133 - Incorrectly building interdependent projects
Summary: Incorrectly building interdependent projects
Status: REOPENED
Alias: None
Product: AJDT
Classification: Tools
Component: Core (show other bugs)
Version: 1.2.0 RC2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: AJDT-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 251153
Blocks:
  Show dependency tree
 
Reported: 2005-06-09 07:49 EDT by Andrew Clement CLA
Modified: 2010-04-28 19:20 EDT (History)
0 users

See Also:


Attachments
patch that fixes the failing tests (29.34 KB, patch)
2008-10-16 18:03 EDT, Andrew Eisenberg CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Clement CLA 2005-06-09 07:49:36 EDT
RC2 has a problem in that it sometimes doesnt build depending projects when you
make a change to a project.  If B depends on A, and you make a change to A such
that B should notice, B was not being built - this is due to incorrect delta
processing in AJBuilder.build() when building B.
Comment 1 Andrew Clement CLA 2005-06-09 07:50:44 EDT
Fix is to the delta processing - when building project B we should look at the
delta for B *and* the delta for A - if there was a source code change in A we
should call the compiler for B.

Also improved the logic that examines deltas to avoid processing unnecessary
changes in the 'bin' folder of a project.
Comment 2 Helen Beeken CLA 2005-08-16 04:24:16 EDT
Tests for this bug can now be found in org.eclipse.ajdt.core.tests.Bug99133Test.
These have been put both into the AJDT1.2 and AJDT 1.3 streams.
Comment 3 Andrew Eisenberg CLA 2008-10-16 17:56:21 EDT
Reopenning this bug because with the latest changes to incremental compilation, the tests related to this bug are failing.
Comment 4 Andrew Eisenberg CLA 2008-10-16 17:56:40 EDT
Actually, can't reopen.  Maybe someone else can.
Comment 5 Andrew Eisenberg CLA 2008-10-16 18:03:38 EDT
Created attachment 115319 [details]
patch that fixes the failing tests

The tests were failing because the timestamp of the last change of an aspect and the timestamp of last build of a project that depends on the aspect were too close together.

AjState assumes that if timestamps of a class file and the last build timestamp of a project that depends on it are within 1 second (ie- the class file was touched up to 1 second *before* the build completed), then the class file is considered to have changed since the last build.

Now that we are able to complete builds faster, successive builds of dependent projects may run into this limit.

In these tests, I have added a one second delay between the creation of the first and second projects.  In the real world, this may happen sporadically and may be difficult to track down.

All this would mean is that there will be some full builds occurring when there doesn't need to be.

Will open an AspectJ bug to track this.
Comment 6 Andrew Clement CLA 2008-10-16 18:06:24 EDT
patch from c5 applied - tests reactivated
Comment 7 Andrew Clement CLA 2008-10-16 18:07:32 EDT
still work to do
Comment 8 Andrew Eisenberg CLA 2010-04-28 19:20:50 EDT
No longer slated for the next release.