Return-Path: Delivered-To: apmail-continuum-commits-archive@www.apache.org Received: (qmail 70900 invoked from network); 28 Jul 2009 02:18:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 28 Jul 2009 02:18:00 -0000 Received: (qmail 36572 invoked by uid 500); 28 Jul 2009 02:19:05 -0000 Delivered-To: apmail-continuum-commits-archive@continuum.apache.org Received: (qmail 36518 invoked by uid 500); 28 Jul 2009 02:19:05 -0000 Mailing-List: contact commits-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list commits@continuum.apache.org Received: (qmail 36509 invoked by uid 99); 28 Jul 2009 02:19:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2009 02:19:05 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2009 02:19:01 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id BD06423888DC; Tue, 28 Jul 2009 02:18:40 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r798361 - in /continuum/branches/continuum-1.3.x/continuum-core/src: main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Date: Tue, 28 Jul 2009 02:18:40 -0000 To: commits@continuum.apache.org From: ctan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090728021840.BD06423888DC@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ctan Date: Tue Jul 28 02:18:40 2009 New Revision: 798361 URL: http://svn.apache.org/viewvc?rev=798361&view=rev Log: [CONTINUUM-2315] prevent project from being added to the build queue if it is currently building Modified: continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Modified: continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java?rev=798361&r1=798360&r2=798361&view=diff ============================================================================== --- continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java (original) +++ continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java Tue Jul 28 02:18:40 2009 @@ -109,6 +109,11 @@ log.warn( "Project already queued." ); return; } + else if ( isProjectInAnyCurrentBuild( projectId ) ) + { + log.warn( "Project is already building." ); + return; + } } catch ( TaskQueueException e ) { @@ -165,7 +170,7 @@ { try { - if ( !isInQueue( project.getId(), BUILD_QUEUE, -1 ) ) + if ( !isInQueue( project.getId(), BUILD_QUEUE, -1 ) && !isProjectInAnyCurrentBuild( project.getId() ) ) { firstProjectId = project.getId(); break; @@ -200,6 +205,12 @@ "' is already in build queue." ); continue; } + else if ( isProjectInAnyCurrentBuild( project.getId() ) ) + { + log.warn( "Project '" + project.getId() + "' - '" + project.getName() + + "' is already building." ); + continue; + } } catch ( TaskQueueException e ) { @@ -242,7 +253,6 @@ else { log.error( "Projects are already in build queue." ); - throw new BuildManagerException( "Projects are already in build queue." ); } } Modified: continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java?rev=798361&r1=798360&r2=798361&view=diff ============================================================================== --- continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java (original) +++ continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Tue Jul 28 02:18:40 2009 @@ -186,6 +186,9 @@ exactly( 5 ).of( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) ); will( returnValue( false ) ); + exactly( 5 ).of( buildTaskQueueExecutor ).getCurrentTask(); + will( returnValue( null ) ); + one( projectDao ).getProjectsInGroup( with( any( int.class ) ) ); will( returnValue( projects ) ); @@ -195,7 +198,7 @@ exactly( 2 ).of( overallBuildQueue ).getBuildQueue(); will( returnValue( buildQueue ) ); - exactly( 2 ).of( overallBuildQueue ).getBuildTaskQueueExecutor(); + exactly( 7 ).of( overallBuildQueue ).getBuildTaskQueueExecutor(); will( returnValue( buildTaskQueueExecutor ) ); }} ); } @@ -672,6 +675,9 @@ exactly( 4 ).of( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) ); will( returnValue( false ) ); + exactly( 4 ).of( buildQueueExecutor ).getCurrentTask(); + will( returnValue( null ) ); + one( projectDao ).getProjectsInGroup( with( any( int.class ) ) ); will( returnValue( projects ) ); @@ -681,7 +687,7 @@ exactly( 2 ).of( overallBuildQueue ).getBuildQueue(); will( returnValue( buildQueue ) ); - exactly( 2 ).of( overallBuildQueue ).getBuildTaskQueueExecutor(); + exactly( 6 ).of( overallBuildQueue ).getBuildTaskQueueExecutor(); will( returnValue( buildQueueExecutor ) ); exactly( 2 ).of( buildQueue ).getQueueSnapshot(); @@ -804,6 +810,12 @@ one( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) ); will( returnValue( false ) ); + one( overallBuildQueue ).getBuildTaskQueueExecutor(); + will( returnValue( buildTaskQueueExecutor ) ); + + one( buildTaskQueueExecutor ).getCurrentTask(); + will( returnValue( null ) ); + one( projectDao ).getProjectsInGroup( with( any( int.class ) ) ); will( returnValue( projects ) );