]> source.dussan.org Git - sonarqube.git/commitdiff
Use try-with-resources when possible
authorJulien HENRY <julien.henry@sonarsource.com>
Wed, 7 Jan 2015 09:03:41 +0000 (10:03 +0100)
committerJulien HENRY <julien.henry@sonarsource.com>
Wed, 7 Jan 2015 09:04:08 +0000 (10:04 +0100)
12 files changed:
sonar-batch/src/main/java/org/sonar/batch/index/DuplicationPersister.java
sonar-batch/src/main/java/org/sonar/batch/index/FileHashesPersister.java
sonar-batch/src/main/java/org/sonar/batch/index/MeasurePersister.java
sonar-batch/src/main/java/org/sonar/batch/index/SourcePersister.java
sonar-batch/src/main/java/org/sonar/batch/phases/GraphPersister.java
sonar-batch/src/main/java/org/sonar/batch/profiling/PhasesSumUpTimeProfiler.java
sonar-batch/src/main/java/org/sonar/batch/scan/ProjectReactorBuilder.java
sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/FileMetadata.java
sonar-batch/src/main/java/org/sonar/batch/scan/report/JsonReport.java
sonar-batch/src/main/java/org/sonar/batch/source/CodeColorizers.java
sonar-batch/src/test/java/org/sonar/batch/index/DefaultResourcePersisterTest.java
sonar-batch/src/test/java/org/sonar/batch/scan/ProjectReactorBuilderTest.java

index ce3067839f43f33c94578b77c80f0b7310c0dccf..24be13710ba6c8b24078ff83e1bbc7c7044099d9 100644 (file)
@@ -53,8 +53,7 @@ public final class DuplicationPersister implements ScanPersister {
   @Override
   public void persist() {
     // Don't use batch insert for duplications since keeping all data in memory can produce OOM
-    DbSession session = mybatis.openSession(false);
-    try {
+    try (DbSession session = mybatis.openSession(false)) {
       MeasureMapper mapper = session.getMapper(MeasureMapper.class);
       org.sonar.api.measures.Metric duplicationMetricWithId = metricFinder.findByKey(CoreMetrics.DUPLICATIONS_DATA_KEY);
       for (Entry<List<DuplicationGroup>> entry : duplicationCache.entries()) {
@@ -70,8 +69,6 @@ public final class DuplicationPersister implements ScanPersister {
       }
     } catch (Exception e) {
       throw new IllegalStateException("Unable to save some measures", e);
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
index 85e182281fac2195d8543d7f39baf9ac519c5258..526ce7ba9f6dc47ae8515c8df197d5f87269190b 100644 (file)
@@ -44,8 +44,7 @@ public class FileHashesPersister implements ScanPersister {
 
   @Override
   public void persist() {
-    DbSession session = mybatis.openSession(true);
-    try {
+    try (DbSession session = mybatis.openSession(true)) {
       for (BatchResource batchResource : resourceCache.all()) {
         String componentKey = batchResource.resource().getEffectiveKey();
         String fileHashesdata = data.getStringData(componentKey, SnapshotDataTypes.FILE_HASHES);
@@ -59,8 +58,6 @@ public class FileHashesPersister implements ScanPersister {
         }
       }
       session.commit();
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 }
index 4d4b2b264335260e5ef841ec665b57d1c59c8cd1..f6a93249a5f6bab87ce90743c06a7116f460ddb4 100644 (file)
@@ -53,8 +53,7 @@ public final class MeasurePersister implements ScanPersister {
 
   @Override
   public void persist() {
-    DbSession session = mybatis.openSession(true);
-    try {
+    try (DbSession session = mybatis.openSession(true)) {
       MeasureMapper mapper = session.getMapper(MeasureMapper.class);
 
       for (Entry<Measure> entry : measureCache.entries()) {
@@ -71,8 +70,6 @@ public final class MeasurePersister implements ScanPersister {
       session.commit();
     } catch (Exception e) {
       throw new IllegalStateException("Unable to save some measures", e);
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
index 252d988be857f722b997753735cecc3dbd8cf513..ab28752e392d94c167e61b342d47e41d20ad1e76 100644 (file)
@@ -100,8 +100,7 @@ public class SourcePersister implements ScanPersister {
   @Override
   public void persist() {
     // Don't use batch insert for file_sources since keeping all data in memory can produce OOM for big files
-    DbSession session = mybatis.openSession(false);
-    try {
+    try (DbSession session = mybatis.openSession(false)) {
 
       final Map<String, FileSourceDto> fileSourceDtoByFileUuid = new HashMap<String, FileSourceDto>();
 
@@ -123,8 +122,6 @@ public class SourcePersister implements ScanPersister {
       }
     } catch (Exception e) {
       throw new IllegalStateException("Unable to save file sources", e);
-    } finally {
-      MyBatis.closeQuietly(session);
     }
 
   }
index f6cc90b7847a80b794c0316b3a2c652c6d8191b6..1cc8b4bd6cf64f7ec718fa2f5f5185eb437513eb 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.batch.phases;
 
 import com.tinkerpop.blueprints.Graph;
-import org.apache.commons.io.IOUtils;
 import org.sonar.api.component.Perspective;
 import org.sonar.batch.index.ScanPersister;
 import org.sonar.core.component.ComponentVertex;
@@ -35,6 +34,7 @@ import org.sonar.core.graph.jdbc.GraphDtoMapper;
 import org.sonar.core.persistence.DbSession;
 import org.sonar.core.persistence.MyBatis;
 
+import java.io.IOException;
 import java.io.StringWriter;
 
 public class GraphPersister implements ScanPersister {
@@ -76,7 +76,7 @@ public class GraphPersister implements ScanPersister {
   }
 
   private void serializePerspectiveData(GraphDtoMapper mapper, ComponentVertex component, Long snapshotId,
-                                        GraphPerspectiveBuilder builder) {
+    GraphPerspectiveBuilder builder) {
     Graph subGraph = SubGraph.extract(component.element(), builder.path());
     String data = write(subGraph);
     mapper.insert(new GraphDto()
@@ -87,16 +87,15 @@ public class GraphPersister implements ScanPersister {
       .setResourceId((Long) component.element().getProperty("rid"))
       .setSnapshotId(snapshotId)
       .setRootVertexId(component.element().getId().toString())
-    );
+      );
   }
 
   private String write(Graph graph) {
-    StringWriter output = new StringWriter();
-    try {
+    try (StringWriter output = new StringWriter()) {
       new GraphsonWriter().write(graph, output, GraphsonMode.EXTENDED);
       return output.toString();
-    } finally {
-      IOUtils.closeQuietly(output);
+    } catch (IOException e) {
+      throw new IllegalStateException("Unable to write graph", e);
     }
   }
 }
index e1cc04ec070b10c69d65f06da0e82002cd456438..06bd41dabe18cb0096913f7beda58d8a6e7f4773 100644 (file)
@@ -21,7 +21,6 @@ package org.sonar.batch.profiling;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
-import com.google.common.io.Closeables;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -150,16 +149,12 @@ public class PhasesSumUpTimeProfiler implements ProjectAnalysisHandler, SensorEx
   }
 
   private void dumpToFile(Properties props, String fileName) {
-    FileOutputStream fos = null;
     File file = new File(out, fileName);
-    try {
-      fos = new FileOutputStream(file);
+    try (FileOutputStream fos = new FileOutputStream(file)) {
       props.store(fos, "SonarQube");
       println("Profiling data stored in " + file.getAbsolutePath());
     } catch (Exception e) {
       throw new IllegalStateException("Unable to store profiler output: " + file, e);
-    } finally {
-      Closeables.closeQuietly(fos);
     }
   }
 
index 9171c69330ac0e2004276aa0361c30ee7ba66991..eadf7155dc1c7a222c17249319e7beb9f75f6fe4 100644 (file)
@@ -21,7 +21,6 @@ package org.sonar.batch.scan;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Lists;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.filefilter.AndFileFilter;
 import org.apache.commons.io.filefilter.FileFileFilter;
 import org.apache.commons.io.filefilter.IOFileFilter;
@@ -256,14 +255,10 @@ public class ProjectReactorBuilder {
   @VisibleForTesting
   protected static Properties toProperties(File propertyFile) {
     Properties propsFromFile = new Properties();
-    FileInputStream fileInputStream = null;
-    try {
-      fileInputStream = new FileInputStream(propertyFile);
+    try (FileInputStream fileInputStream = new FileInputStream(propertyFile)) {
       propsFromFile.load(fileInputStream);
     } catch (IOException e) {
       throw new IllegalStateException("Impossible to read the property file: " + propertyFile.getAbsolutePath(), e);
-    } finally {
-      IOUtils.closeQuietly(fileInputStream);
     }
     // Trim properties
     for (String propKey : propsFromFile.stringPropertyNames()) {
index 161497f37ef7e8cf14821a68d68b35bfa63fea8f..afa4735d77ef6612b98bb4b3043a5f740d073284 100644 (file)
@@ -23,7 +23,6 @@ import com.google.common.base.Charsets;
 import com.google.common.primitives.Longs;
 import org.apache.commons.codec.binary.Hex;
 import org.apache.commons.codec.digest.DigestUtils;
-import org.apache.commons.io.IOUtils;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -53,16 +52,14 @@ class FileMetadata {
    * Maximum performance is needed.
    */
   Metadata read(File file, Charset encoding) {
-    Reader reader = null;
     long currentOriginalOffset = 0;
     List<Long> originalLineOffsets = new ArrayList<Long>();
     List<Object> lineHashes = new ArrayList<Object>();
     int lines = 0;
     char c = (char) -1;
-    try {
+    try (Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding))) {
       MessageDigest globalMd5Digest = DigestUtils.getMd5Digest();
       MessageDigest lineMd5Digest = DigestUtils.getMd5Digest();
-      reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
       int i = reader.read();
       boolean afterCR = false;
       // First offset of first line is always 0
@@ -113,8 +110,6 @@ class FileMetadata {
 
     } catch (IOException e) {
       throw new IllegalStateException(String.format("Fail to read file '%s' with encoding '%s'", file.getAbsolutePath(), encoding), e);
-    } finally {
-      IOUtils.closeQuietly(reader);
     }
   }
 
index 78c12892025a8f01aab90d729279d0ff0ae3d7f9..c5c967de7084697a4f8e7010492342ac4f6de98f 100644 (file)
@@ -21,7 +21,6 @@ package org.sonar.batch.scan.report;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Charsets;
-import com.google.common.io.Closeables;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -49,7 +48,12 @@ import org.sonar.batch.events.EventBus;
 import org.sonar.batch.issue.IssueCache;
 import org.sonar.batch.scan.filesystem.InputPathCache;
 
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -100,15 +104,11 @@ public class JsonReport implements BatchComponent {
     File exportFile = new File(fileSystem.workDir(), settings.getString("sonar.report.export.path"));
 
     LOG.info("Export results to " + exportFile.getAbsolutePath());
-    Writer output = null;
-    try {
-      output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile), Charsets.UTF_8));
+    try (Writer output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile), Charsets.UTF_8))) {
       writeJson(output);
 
     } catch (IOException e) {
       throw new IllegalStateException("Unable to write report results in file " + exportFile.getAbsolutePath(), e);
-    } finally {
-      Closeables.closeQuietly(output);
     }
   }
 
index d4df1fafd61d97bf111bacc62929df73538d086b..f0d4789f7bc00266d3937df3c287cd9f147b8667 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.batch.source;
 
 import com.google.common.collect.Lists;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.BOMInputStream;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -82,14 +81,10 @@ public class CodeColorizers implements BatchComponent {
     } else {
       tokenizers = format.getTokenizers();
     }
-    Reader reader = null;
-    try {
-      reader = new BufferedReader(new InputStreamReader(new BOMInputStream(new FileInputStream(file)), encoding));
+    try (Reader reader = new BufferedReader(new InputStreamReader(new BOMInputStream(new FileInputStream(file)), encoding))) {
       return new HighlightingRenderer().render(reader, tokenizers);
     } catch (Exception e) {
       throw new IllegalStateException("Unable to read source file for colorization", e);
-    } finally {
-      IOUtils.closeQuietly(reader);
     }
   }
 }
index a8f64618eaf74ba43bc6c7ae95d8ded814efb8ab..d2eee9095f6e77633b291dcf7e64bfbb4fe9623c 100644 (file)
@@ -42,7 +42,6 @@ import org.sonar.batch.scan.measure.MeasureCache;
 import org.sonar.core.component.ComponentDto;
 import org.sonar.core.component.ScanGraph;
 import org.sonar.core.component.db.ComponentMapper;
-import org.sonar.core.persistence.MyBatis;
 import org.sonar.jpa.test.AbstractDbUnitTestCase;
 
 import javax.persistence.Query;
@@ -114,8 +113,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
 
     // Need to enable snapshot to make resource visible using ComponentMapper
     enableSnapshot(1001);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       ComponentDto newProject = session.getMapper(ComponentMapper.class).selectByKey("foo");
       assertThat(newProject.uuid()).isNotNull();
       assertThat(newProject.projectUuid()).isEqualTo(newProject.uuid());
@@ -123,8 +121,6 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
       assertThat(newProject.moduleUuidPath()).isEmpty();
       // SONAR-3636 : created_at must be fed when inserting a new entry in the 'projects' table
       assertThat(newProject.getCreatedAt()).isNotNull();
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
@@ -139,15 +135,12 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
       "projects", "snapshots");
     // Need to enable snapshot to make resource visible using ComponentMapper
     enableSnapshot(1001);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       ComponentDto newProject = session.getMapper(ComponentMapper.class).selectByKey("foo");
       assertThat(newProject.uuid()).isNotNull();
       assertThat(newProject.projectUuid()).isEqualTo(newProject.uuid());
       assertThat(newProject.moduleUuid()).isNull();
       assertThat(newProject.moduleUuidPath()).isEmpty();
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
@@ -175,8 +168,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
     enableSnapshot(1004);
     enableSnapshot(1005);
     enableSnapshot(1006);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       ComponentDto root = session.getMapper(ComponentMapper.class).selectByKey("root");
       assertThat(root.uuid()).isNotNull();
       assertThat(root.projectUuid()).isEqualTo(root.uuid());
@@ -207,8 +199,6 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
       assertThat(fileComp.projectUuid()).isEqualTo(root.uuid());
       assertThat(fileComp.moduleUuid()).isEqualTo(b1.uuid());
       assertThat(fileComp.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid());
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
@@ -252,8 +242,7 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
     enableSnapshot(1004);
     enableSnapshot(1005);
     enableSnapshot(1006);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       ComponentDto root = session.getMapper(ComponentMapper.class).selectByKey("root");
       System.out.println("Root: " + root.uuid());
       assertThat(root.uuid()).isNotNull();
@@ -288,8 +277,6 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
       assertThat(fileComp.projectUuid()).isEqualTo(root.uuid());
       assertThat(fileComp.moduleUuid()).isEqualTo(b1.uuid());
       assertThat(fileComp.moduleUuidPath()).isEqualTo(root.uuid() + "." + b.uuid() + "." + b1.uuid());
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
@@ -308,16 +295,13 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
     // Need to enable snapshot to make resource visible using ComponentMapper
     enableSnapshot(1001);
     enableSnapshot(1002);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       ComponentDto newProject = session.getMapper(ComponentMapper.class).selectByKey("foo");
       ComponentDto newDir = session.getMapper(ComponentMapper.class).selectByKey("foo:src/main/java/org/foo");
       assertThat(newDir.uuid()).isNotNull();
       assertThat(newDir.projectUuid()).isEqualTo(newProject.uuid());
       assertThat(newDir.moduleUuid()).isEqualTo(newProject.uuid());
       assertThat(newDir.moduleUuidPath()).isEqualTo(newProject.uuid());
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
@@ -345,16 +329,13 @@ public class DefaultResourcePersisterTest extends AbstractDbUnitTestCase {
 
     // Need to enable snapshot to make resource visible using ComponentMapper
     enableSnapshot(1002);
-    SqlSession session = getMyBatis().openSession(false);
-    try {
+    try (SqlSession session = getMyBatis().openSession(false)) {
       // FIXME selectByKey returns duplicates for libraries because of the join on snapshots table
       ComponentDto newLib = session.getMapper(ComponentMapper.class).findByKeys(Arrays.asList("junit:junit")).get(0);
       assertThat(newLib.uuid()).isNotNull();
       assertThat(newLib.projectUuid()).isEqualTo(newLib.uuid());
       assertThat(newLib.moduleUuid()).isNull();
       assertThat(newLib.moduleUuidPath()).isEmpty();
-    } finally {
-      MyBatis.closeQuietly(session);
     }
   }
 
index 03f9c522e2c3c9522c30465fb35463fad0f2c62c..f8f1f3640ada19a57446ac530a94d54e5c7d404f 100644 (file)
@@ -20,7 +20,6 @@
 package org.sonar.batch.scan;
 
 import com.google.common.collect.Maps;
-import org.apache.commons.io.IOUtils;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
@@ -633,12 +632,8 @@ public class ProjectReactorBuilderTest {
 
   private Map<String, String> loadPropsFromFile(String filePath) throws IOException {
     Properties props = new Properties();
-    FileInputStream fileInputStream = null;
-    try {
-      fileInputStream = new FileInputStream(TestUtils.getResource(this.getClass(), filePath));
+    try (FileInputStream fileInputStream = new FileInputStream(TestUtils.getResource(this.getClass(), filePath))) {
       props.load(fileInputStream);
-    } finally {
-      IOUtils.closeQuietly(fileInputStream);
     }
     Map<String, String> result = new HashMap<String, String>();
     for (Map.Entry<Object, Object> entry : props.entrySet()) {