Further to this, I commented out the logic below and now it just falls
through to the following "else" statement:
else if ( date != null && changes.isEmpty() )
{
// fresh checkout from build agent that's why changes is empty
log.info( "Changes found in the current project, building (projectId=" +
projectId + ")" );
return true;
}
And now everything always builds. I don't believe any of the logic after the
above is ever executed, ever.
So without knowing the intent of these bits of code it's a bit hard to fix.
Thanks,
Steve C
On 16/07/10 11:37 AM, "Stephen Coy" <[email protected]> wrote:
> Hi there,
>
> I¹ve been trying to figure out why our projects were not building in
> Continuum 1.4.0 when their dependencies had been changed. I could see from
> the log message:
>
> INFO
> org.apache.continuum.builder.distributed.DefaultDistributedBuildService -
> No changes found, not building (projectId=16)
>
> that we were encountering the following piece of code in
> org.apache.continuum.builder.distributed.DefaultDistributedBuildService.shou
> ldBuild(Map<String, Object>):
>
> Date date = ContinuumBuildConstant.getLatestUpdateDate( context
> );
> if ( date != null && oldBuildResult.getLastChangedDate() >=
> date.getTime() )
> {
> log.info( "No changes found, not building (projectId=" +
> projectId + ")" );
> return false;
> }
>
> From what I can determine, ³date² contains the start time for the most
> recent build of the project (for any build definition). It seems to me that
> this test will always be true if the dates have been sourced from the same
> BuildResult record.
>
> The test for changed dependencies comes after this code fragment, and so
> never gets executed.
>
> It¹s not clear to me what this test is trying to accomplish, and I¹m tempted
> to remove it.
>
> Thanks for your help,
>
> Steve Coy
>
>