You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by tr...@apache.org on 2005/07/08 15:17:23 UTC

svn commit: r209762 - in /maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum: buildcontroller/DefaultBuildController.java core/action/UpdateWorkingDirectoryFromScmContinuumAction.java

Author: trygvis
Date: Fri Jul  8 06:17:21 2005
New Revision: 209762

URL: http://svn.apache.org/viewcvs?rev=209762&view=rev
Log:
o Handling the errors in the correct place.

Modified:
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=209762&r1=209761&r2=209762&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Fri Jul  8 06:17:21 2005
@@ -87,6 +87,12 @@
         }
 
         // ----------------------------------------------------------------------
+        // TODO: Centralize the error handling from the SCM related actions.
+        // ContinuumScmResult should return a ContinuumScmResult from all
+        // methods, even in a case of failure.
+        // ----------------------------------------------------------------------
+
+        // ----------------------------------------------------------------------
         //
         // ----------------------------------------------------------------------
 
@@ -128,27 +134,7 @@
                     // Check to see if there was a error while checking out the project
                     // ----------------------------------------------------------------------
 
-                    if ( StringUtils.isEmpty( checkoutErrorMessage ) && StringUtils.isEmpty( checkoutErrorException ) )
-                    {
-                        // TODO: remove once CONTINUUM-193 is resolved
-                        UpdateScmResult updateScmResult = new UpdateScmResult();
-
-                        updateScmResult.setCommandOutput( checkOutScmResult.getCommandOutput() );
-
-                        updateScmResult.setProviderMessage( checkOutScmResult.getProviderMessage() );
-
-                        updateScmResult.setSuccess( false );
-
-                        for ( Iterator it = checkOutScmResult.getCheckedOutFiles().iterator(); it.hasNext(); )
-                        {
-                            ScmFile scmFile = (ScmFile) it.next();
-
-                            updateScmResult.getUpdatedFiles().add( scmFile );
-                        }
-
-                        actionContext.put( AbstractContinuumAction.KEY_UPDATE_SCM_RESULT, updateScmResult );
-                    }
-                    else
+                    if ( !StringUtils.isEmpty( checkoutErrorMessage ) || !StringUtils.isEmpty( checkoutErrorException ) )
                     {
                         ContinuumBuild build = makeBuildResult( scmResult, startTime, forced );
 
@@ -172,6 +158,24 @@
 
                         return;
                      }
+
+                    // TODO: remove once CONTINUUM-193 is resolved
+                    UpdateScmResult updateScmResult = new UpdateScmResult();
+
+                    updateScmResult.setCommandOutput( checkOutScmResult.getCommandOutput() );
+
+                    updateScmResult.setProviderMessage( checkOutScmResult.getProviderMessage() );
+
+                    updateScmResult.setSuccess( false );
+
+                    for ( Iterator it = checkOutScmResult.getCheckedOutFiles().iterator(); it.hasNext(); )
+                    {
+                        ScmFile scmFile = (ScmFile) it.next();
+
+                        updateScmResult.getUpdatedFiles().add( scmFile );
+                    }
+
+                    actionContext.put( AbstractContinuumAction.KEY_UPDATE_SCM_RESULT, updateScmResult );
                 }
 
                 scmResult = (UpdateScmResult) actionContext.get( AbstractContinuumAction.KEY_UPDATE_SCM_RESULT );
@@ -188,7 +192,35 @@
 
                 ContinuumBuild build = makeBuildResult( scmResult, startTime, forced );
 
-                build.setError( ContinuumUtils.throwableToString( e ) );
+                String error;
+
+                // This can happen if the "update project from scm" action fails
+                if ( e instanceof ContinuumScmException )
+                {
+                    ContinuumScmException ex = (ContinuumScmException) e;
+
+                    ScmResult result = ex.getResult();
+
+                    error = "";
+
+                    if ( result != null )
+                    {
+                        error += "Provider message: " + StringUtils.clean( result.getProviderMessage() ) + System.getProperty( "line.separator" );
+                        error += "Command output: " + System.getProperty( "line.separator" );
+                        error += "-------------------------------------------------------------------------------";
+                        error += StringUtils.clean( result.getCommandOutput() ) + System.getProperty( "line.separator" );
+                        error += "-------------------------------------------------------------------------------";
+                    }
+
+                    error += "Exception:" + System.getProperty( "line.separator" );
+                    error += ContinuumUtils.throwableToString( e );
+                }
+                else
+                {
+                    error = ContinuumUtils.throwableToString( e );
+                }
+
+                build.setError( error );
 
                 buildId = storeBuild( project, build );
 

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java?rev=209762&r1=209761&r2=209762&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/UpdateWorkingDirectoryFromScmContinuumAction.java Fri Jul  8 06:17:21 2005
@@ -33,23 +33,15 @@
     {
         ContinuumProject project = getProject( context );
 
-        // ----------------------------------------------------------------------
-        //
-        // ----------------------------------------------------------------------
-
-        getNotifier().checkoutStarted( project );
-
         UpdateScmResult updateScmResult = null;
 
         try
         {
+            getNotifier().checkoutStarted( project );
+
             updateScmResult = getScm().updateProject( project );
 
             context.put( KEY_UPDATE_SCM_RESULT, updateScmResult );
-        }
-        catch( Throwable e )
-        {
-            CheckoutProjectContinuumAction.handleThrowable( e, context );
         }
         finally
         {