From cc8788c9ea25a29e55aadab81d3468c9ee74c9aa Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Mon, 28 Jan 2013 17:40:30 +0100 Subject: [PATCH] SONAR-2291 Close InputStream properly after computing md5 --- .../main/java/org/sonar/batch/cache/SonarCache.java | 11 +++++++++-- .../java/org/sonar/core/plugins/RemotePlugin.java | 6 +++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/cache/SonarCache.java b/sonar-batch/src/main/java/org/sonar/batch/cache/SonarCache.java index bd203b2d17b..b503dc463df 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/cache/SonarCache.java +++ b/sonar-batch/src/main/java/org/sonar/batch/cache/SonarCache.java @@ -19,6 +19,7 @@ */ package org.sonar.batch.cache; +import com.google.common.io.Closeables; import com.google.common.io.Files; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.FileUtils; @@ -107,8 +108,14 @@ public class SonarCache { tmpFileName = sourceFile; } // Now compute the md5 to find the final destination - FileInputStream fis = new FileInputStream(tmpFileName); - String md5 = DigestUtils.md5Hex(fis); + String md5; + FileInputStream fis = null; + try { + fis = new FileInputStream(tmpFileName); + md5 = DigestUtils.md5Hex(fis); + } finally { + Closeables.closeQuietly(fis); + } File finalDir = new File(cacheLocation, md5); File finalFileName = new File(finalDir, filename); // Try to create final destination folder diff --git a/sonar-core/src/main/java/org/sonar/core/plugins/RemotePlugin.java b/sonar-core/src/main/java/org/sonar/core/plugins/RemotePlugin.java index 7ae665f1c8c..75be9c70a8a 100644 --- a/sonar-core/src/main/java/org/sonar/core/plugins/RemotePlugin.java +++ b/sonar-core/src/main/java/org/sonar/core/plugins/RemotePlugin.java @@ -20,6 +20,7 @@ package org.sonar.core.plugins; import com.google.common.collect.Lists; +import com.google.common.io.Closeables; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.StringUtils; @@ -86,11 +87,14 @@ public class RemotePlugin { public RemotePlugin addFile(File f) { String md5; + FileInputStream fis = null; try { - FileInputStream fis = new FileInputStream(f); + fis = new FileInputStream(f); md5 = DigestUtils.md5Hex(fis); } catch (Exception e) { md5 = null; + } finally { + Closeables.closeQuietly(fis); } return this.addFile(f.getName(), md5); } -- 2.39.5