Community
Participate
Working Groups
When creating a new workspace with several projects, the DeltaProcessor will fail to set the project references correctly (and as a result, the build order will be wrong) if a project build runs before autobuild builds the entire workspace. The delta attached to the PRE_BUILD event for the very first project build is relative to the entire workspace and contains all the information needed to set the project references for all projects. The additional PRE_BUILD events (whether they are triggered by project or workspace builds)do not contain the necessary information in their deltas since its assumed listeners have already seen the full delta. The problem is caused by the check on the first line of DeltaProcessor.resourceChanged(): public void resourceChanged(IResourceChangeEvent event) { if (event.getSource() instanceof IWorkspace) { I talked to Jerome and he believes this was a leftover from the very early days. Removing the check fixes the problem trying to build our workspace from scratch. This should be fixed for 3.2.1
Not for 3.2.1, since the only known usecase has just moved to 3.3M1.
Actually, talking with Kent, I think we should fix it for 3.2.1. Fix is trivial, and PDE is now exposing our weakness in 3.2 through the feature builder.
Created attachment 49059 [details] Proposed fix
Proposed fix released for 3.2.1 in R3_2_maitenance branch and released for 3.3 M2 in HEAD.
Regression test needed.
Kent, Could you please verify this one since I don't have a test case to do it? Thanks.
Verified for 3.2.1 using build M20060908-1655
Verified for 3.3 M2
Created attachment 50398 [details] Test case For reference, this is a test case I wrote to verify the behaviour that Kent was seeing. After calling build for an individual builder, autobuild is turned on, but the PRE_BUILD event for the workspace build is never received because nothing has changed since the last build.