You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2009/04/03 06:44:53 UTC

svn commit: r761523 - in /continuum/branches/continuum-1.3.x/continuum-webapp/src/main: java/org/apache/maven/continuum/web/action/ScheduleAction.java resources/localization/Continuum.properties

Author: evenisse
Date: Fri Apr  3 04:44:52 2009
New Revision: 761523

URL: http://svn.apache.org/viewvc?rev=761523&view=rev
Log:
[CONTINUUM-2143] Message schedule.buildqueues.add.error when a schedule already exist\nSubmitted by: Jose Morales Martinez

Modified:
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties

Modified: continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java?rev=761523&r1=761522&r2=761523&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java Fri Apr  3 04:44:52 2009
@@ -19,10 +19,13 @@
  * under the License.
  */
 
+import com.opensymphony.xwork2.Preparable;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.commons.lang.StringUtils;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildQueue;
 import org.apache.maven.continuum.model.project.Schedule;
@@ -31,8 +34,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.opensymphony.xwork2.Preparable;
-
 /**
  * @author Nik Gonzalez
  * @version $Id$
@@ -91,7 +92,7 @@
     private void populateBuildQueues()
         throws ContinuumException
     {
-        List<BuildQueue> buildQueues = null;
+        List<BuildQueue> buildQueues;
         if ( schedule != null )
         {
             buildQueues = schedule.getBuildQueues();
@@ -215,7 +216,7 @@
             return REQUIRES_AUTHENTICATION;
         }
 
-        if ( ( "".equals( name ) ) || ( name == null ) )
+        if ( StringUtils.isBlank( name ) )
         {
             logger.error( "Can't create schedule. No schedule name was supplied." );
             addActionError( getText( "buildDefinition.noname.save.error.message" ) );
@@ -223,32 +224,45 @@
         }
         else
         {
-            if ( id == 0 )
+            try
             {
-                try
-                {
-                    getContinuum().addSchedule( setFields( new Schedule() ) );
-                }
-                catch ( ContinuumException e )
+                Schedule s = getContinuum().getScheduleByName( name );
+                if ( s != null && id != s.getId() )
                 {
-                    addActionError( getText( "schedule.buildqueues.add.error" ) );
+                    addActionError( getText( "schedule.name.already.exists" ) );
                     return ERROR;
                 }
-                return SUCCESS;
             }
-            else
+            catch ( ContinuumException e )
             {
-                try
-                {
-                    getContinuum().updateSchedule( setFields( getContinuum().getSchedule( id ) ) );
-                }
-                catch ( ContinuumException e )
-                {
-                    addActionError( getText( "schedule.buildqueues.add.error" ) );
-                    return ERROR;
-                }
-                return SUCCESS;
+                logger.debug( "Unexpected error getting schedule" );
+            }
+        }
+        if ( id == 0 )
+        {
+            try
+            {
+                getContinuum().addSchedule( setFields( new Schedule() ) );
+            }
+            catch ( ContinuumException e )
+            {
+                addActionError( getText( "schedule.buildqueues.add.error" ) );
+                return ERROR;
+            }
+            return SUCCESS;
+        }
+        else
+        {
+            try
+            {
+                getContinuum().updateSchedule( setFields( getContinuum().getSchedule( id ) ) );
+            }
+            catch ( ContinuumException e )
+            {
+                addActionError( getText( "schedule.buildqueues.add.error" ) );
+                return ERROR;
             }
+            return SUCCESS;
         }
     }
 

Modified: continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=761523&r1=761522&r2=761523&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties Fri Apr  3 04:44:52 2009
@@ -632,6 +632,7 @@
 schedule.available.buildqueues = --- Available Build Queues ---
 schedule.available.buildqueues.used = --- Used Build Queues ---
 schedule.buildqueues.add.error = Error attaching the build queue(s) to schedule.
+schedule.name.already.exists = A Schedule with the same name already exists
 
 # ----------------------------------------------------------------------
 # Page: SurefireReport
@@ -1168,4 +1169,4 @@
 distributedBuild.releaseViewResult.error = Unable to view release result because build agent {0} was either removed or disabled
 distributedBuild.releaseCleanup.error = Unable to cleanup release because build agent {0} was either removed or disabled
 distributedBuild.releasePerform.input.error = Unable to get release plugin parameters because build agent {0} was either removed or disabled
-distributedBuild.releasePerform.release.error Unable to perform release because build agent {0} was either removed or disabled
+distributedBuild.releasePerform.release.error = Unable to perform release because build agent {0} was either removed or disabled