You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2014/01/26 15:53:25 UTC
svn commit: r1561498 -
/maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
Author: rfscholte
Date: Sun Jan 26 14:53:25 2014
New Revision: 1561498
URL: http://svn.apache.org/r1561498
Log:
[MSCMPUB-6] when creating a directory in svn, if checkout fails, wait a few seconds and retry
Modified:
maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
Modified: maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java?rev=1561498&r1=1561497&r2=1561498&view=diff
==============================================================================
--- maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java (original)
+++ maven/plugins/trunk/maven-scm-publish-plugin/src/main/java/org/apache/maven/plugins/scmpublish/AbstractScmPublishMojo.java Sun Jan 26 14:53:25 2014
@@ -349,21 +349,50 @@ public abstract class AbstractScmPublish
{
ScmFileSet fileSet = new ScmFileSet( checkoutDirectory, includes, excludes );
- ScmResult scmResult;
+ ScmResult scmResult = null;
if ( tryUpdate && !forceCheckout )
{
scmResult = scmProvider.update( scmRepository, fileSet );
}
- else if ( scmBranch == null )
- {
- scmResult = scmProvider.checkOut( scmRepository, fileSet );
- }
else
{
- ScmBranch scmBranch = new ScmBranch( this.scmBranch );
- scmResult = scmProvider.checkOut( scmRepository, fileSet, scmBranch );
+ int attempt = 0;
+ while ( scmResult == null )
+ {
+ try
+ {
+ if ( scmBranch == null )
+ {
+ scmResult = scmProvider.checkOut( scmRepository, fileSet );
+ }
+ else
+ {
+ ScmBranch scmBranch = new ScmBranch( this.scmBranch );
+ scmResult = scmProvider.checkOut( scmRepository, fileSet, scmBranch );
+ }
+ }
+ catch ( ScmException e )
+ {
+ // give it max 2 times to retry
+ if ( attempt++ < 2 )
+ {
+ try
+ {
+ // wait 3 seconds
+ Thread.sleep( 3 * 1000 );
+ }
+ catch ( InterruptedException ie )
+ {
+ // noop
+ }
+ }
+ else
+ {
+ throw e;
+ }
+ }
+ }
}
-
checkScmResult( scmResult, "check out from SCM" );
}
catch ( ScmException e )