diff options
-rw-r--r-- | sonar-home/src/main/java/org/sonar/home/cache/FileCache.java | 5 |
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 } |