summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sonar-home/src/main/java/org/sonar/home/cache/FileCache.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/sonar-home/src/main/java/org/sonar/home/cache/FileCache.java b/sonar-home/src/main/java/org/sonar/home/cache/FileCache.java
index 085e83b0f4b..a02eefc6d3e 100644
--- a/sonar-home/src/main/java/org/sonar/home/cache/FileCache.java
+++ b/sonar-home/src/main/java/org/sonar/home/cache/FileCache.java
@@ -189,7 +189,10 @@ public class FileCache {
File tempDir = createTempDir();
ZipUtils.unzip(cachedFile, tempDir, new LibFilter());
try {
- FileUtils.moveDirectory(tempDir, destDir);
+ // Recheck in case of concurrent processes
+ if (!destDir.exists()) {
+ FileUtils.moveDirectory(tempDir, destDir);
+ }
} catch (FileExistsException e) {
// Ignore as is certainly means a concurrent process has unziped the same file
}