You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2009/07/13 09:42:02 UTC
svn commit: r793478 - in /continuum/trunk/continuum-core/src:
main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java
Author: ctan
Date: Mon Jul 13 07:42:01 2009
New Revision: 793478
URL: http://svn.apache.org/viewvc?rev=793478&view=rev
Log:
[CONTINUUM-2295]
- more on preventing NPE when scm result is null
- added unit test
merge -r 793474:793475 from 1.3.x branch
Modified:
continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=793478&r1=793477&r2=793478&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Mon Jul 13 07:42:01 2009
@@ -485,11 +485,14 @@
project.getState() != ContinuumProjectState.NEW && project.getState() != ContinuumProjectState.CHECKEDOUT )
{
// Check SCM changes
- allChangesUnknown = checkAllChangesUnknown( context.getScmResult().getChanges() );
+ if ( context.getScmResult() != null )
+ {
+ allChangesUnknown = checkAllChangesUnknown( context.getScmResult().getChanges() );
+ }
if ( allChangesUnknown )
{
- if ( !context.getScmResult().getChanges().isEmpty() )
+ if ( context.getScmResult() != null && !context.getScmResult().getChanges().isEmpty() )
{
log.info(
"The project was not built because all changes are unknown (maybe local modifications or ignored files not defined in your SCM tool." );
@@ -510,14 +513,19 @@
}
// Check changes
- if ( !shouldBuild && ( ( !allChangesUnknown && !context.getScmResult().getChanges().isEmpty() ) ||
+ if ( !shouldBuild && ( ( !allChangesUnknown && context.getScmResult() != null && !context.getScmResult().getChanges().isEmpty() ) ||
project.getExecutorId().equals( ContinuumBuildExecutorConstants.MAVEN_TWO_BUILD_EXECUTOR ) ) )
{
try
{
ContinuumBuildExecutor executor = buildExecutorManager.getBuildExecutor( project.getExecutorId() );
- if ( context.getScmResult() != null )
+ if ( executor == null )
+ {
+ log.warn( "No continuum build executor found for project " + project.getId() +
+ " with executor '" + project.getExecutorId() + "'" );
+ }
+ else if ( context.getScmResult() != null )
{
shouldBuild = executor.shouldBuild( context.getScmResult().getChanges(), project,
workingDirectoryService.getWorkingDirectory( project ),
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java?rev=793478&r1=793477&r2=793478&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/DefaultBuildControllerTest.java Mon Jul 13 07:42:01 2009
@@ -185,6 +185,16 @@
assertTrue( controller.shouldBuild( context ) );
}
+ public void testWithNullScmResult()
+ throws Exception
+ {
+ BuildContext context = getContext( +1 );
+ context.setScmResult( null );
+ controller.checkProjectDependencies( context );
+ assertEquals( 0, context.getModifiedDependencies().size() );
+ assertFalse( controller.shouldBuild( context ) );
+ }
+
private File getWorkingDirectory()
throws Exception
{