You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by st...@apache.org on 2014/01/06 12:25:31 UTC
[18/21] git commit: Safer deletes
Safer deletes
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/33c53dca
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/33c53dca
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/33c53dca
Branch: refs/heads/master
Commit: 33c53dcae825f8f96cdff6ed8238797cf03e56ec
Parents: 9a9cf05
Author: Stephen Connolly <st...@gmail.com>
Authored: Mon Jan 6 11:14:45 2014 +0000
Committer: Stephen Connolly <st...@gmail.com>
Committed: Mon Jan 6 11:14:45 2014 +0000
----------------------------------------------------------------------
.../DefaultRepositoryMetadataManager.java | 28 ++++++++++++++++++--
.../repository/legacy/DefaultWagonManager.java | 22 ++++++++-------
2 files changed, 38 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/33c53dca/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
----------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
index 53adc8d..e793713 100644
--- a/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
@@ -141,7 +141,19 @@ public class DefaultRepositoryMetadataManager
// delete the local copy so the old details aren't used.
if ( file.exists() )
{
- file.delete();
+ if ( !file.delete() )
+ {
+ // sleep for 10ms just in case this is windows holding a file lock
+ try
+ {
+ Thread.sleep( 10 );
+ }
+ catch ( InterruptedException ie )
+ {
+ // ignore
+ }
+ file.delete(); // if this fails, forget about it
+ }
}
}
catch ( TransferFailedException e )
@@ -448,7 +460,19 @@ public class DefaultRepositoryMetadataManager
// delete the local copy so the old details aren't used.
if ( file.exists() )
{
- file.delete();
+ if ( !file.delete() )
+ {
+ // sleep for 10ms just in case this is windows holding a file lock
+ try
+ {
+ Thread.sleep( 10 );
+ }
+ catch ( InterruptedException ie )
+ {
+ // ignore
+ }
+ file.delete(); // if this fails, forget about it
+ }
}
}
finally
http://git-wip-us.apache.org/repos/asf/maven/blob/33c53dca/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
----------------------------------------------------------------------
diff --git a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
index df81685..0c796ae 100644
--- a/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
+++ b/maven-compat/src/main/java/org/apache/maven/repository/legacy/DefaultWagonManager.java
@@ -505,7 +505,10 @@ public class DefaultWagonManager
{
FileUtils.copyFile( temp, destination );
- temp.delete();
+ if ( !temp.delete() )
+ {
+ temp.deleteOnExit();
+ }
}
catch ( IOException e )
{
@@ -647,14 +650,10 @@ public class DefaultWagonManager
for ( File file : files )
{
// really don't care if it failed here only log warning
- try
- {
- file.delete();
- }
- catch ( Exception e )
+ if ( !file.delete() )
{
- logger.warn( "skip failed to delete temporary file : " + file.getAbsolutePath() + " , message "
- + e.getMessage() );
+ logger.warn( "skip failed to delete temporary file : " + file.getAbsolutePath() );
+ file.deleteOnExit();
}
}
@@ -730,10 +729,13 @@ public class DefaultWagonManager
File checksumFile = new File( destination + checksumFileExtension );
if ( checksumFile.exists() )
{
- checksumFile.delete();
+ checksumFile.delete(); // ignore if failed as we will overwrite
}
FileUtils.copyFile( tempChecksumFile, checksumFile );
- tempChecksumFile.delete();
+ if ( !tempChecksumFile.delete() )
+ {
+ tempChecksumFile.deleteOnExit();
+ }
}
else
{