]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10509 Use BufferedOutputStream when writing source in the scanner report
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Tue, 3 Apr 2018 08:51:02 +0000 (10:51 +0200)
committerJanos Gyerik <janos.gyerik@sonarsource.com>
Wed, 4 Apr 2018 12:40:50 +0000 (14:40 +0200)
sonar-scanner-engine/src/main/java/org/sonar/scanner/profiling/PhasesSumUpTimeProfiler.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/report/SourcePublisher.java

index 829bce0ba0f41ef4f55c920a458026f013bb4e3b..4fbddb05f201191e7e458a5e2be2096b49ea6981 100644 (file)
  */
 package org.sonar.scanner.profiling;
 
-import com.google.common.annotations.VisibleForTesting;
+import static org.sonar.scanner.profiling.AbstractTimeProfiling.sortByDescendingTotalTime;
+import static org.sonar.scanner.profiling.AbstractTimeProfiling.truncate;
+
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
+
 import javax.annotation.Nullable;
+
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -44,8 +50,7 @@ import org.sonar.scanner.bootstrap.GlobalProperties;
 import org.sonar.scanner.events.BatchStepHandler;
 import org.sonar.scanner.util.ScannerUtils;
 
-import static org.sonar.scanner.profiling.AbstractTimeProfiling.sortByDescendingTotalTime;
-import static org.sonar.scanner.profiling.AbstractTimeProfiling.truncate;
+import com.google.common.annotations.VisibleForTesting;
 
 public class PhasesSumUpTimeProfiler implements ProjectAnalysisHandler, SensorExecutionHandler, PostJobExecutionHandler,
   SensorsPhaseHandler, PostJobsPhaseHandler, InitializersPhaseHandler, InitializerExecutionHandler, BatchStepHandler {
@@ -136,7 +141,7 @@ public class PhasesSumUpTimeProfiler implements ProjectAnalysisHandler, SensorEx
 
   private void dumpToFile(Properties props, String fileName) {
     File file = new File(out, fileName);
-    try (FileOutputStream fos = new FileOutputStream(file)) {
+    try (OutputStream fos = new BufferedOutputStream(new FileOutputStream(file))) {
       props.store(fos, "SonarQube");
       println("Profiling data stored in " + file.getAbsolutePath());
     } catch (Exception e) {
index 2b6b184c42e963b037c721f8b51c05055d686784..acb37b393faa23380c968ccb1c0b4e4410b6ab73 100644 (file)
  */
 package org.sonar.scanner.report;
 
+import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.OutputStream;
 import java.nio.charset.StandardCharsets;
+
 import org.apache.commons.io.IOUtils;
 import org.sonar.api.batch.fs.internal.DefaultInputFile;
 import org.sonar.scanner.protocol.output.ScannerReportWriter;
@@ -44,7 +47,7 @@ public class SourcePublisher implements ReportPublisherStep {
     for (final DefaultInputFile inputFile : componentCache.allFilesToPublish()) {
       File iofile = writer.getSourceFile(inputFile.batchId());
 
-      try (FileOutputStream output = new FileOutputStream(iofile);
+      try (OutputStream output = new BufferedOutputStream(new FileOutputStream(iofile));
         InputStream in = inputFile.inputStream();
         BufferedReader reader = new BufferedReader(new InputStreamReader(in, inputFile.charset()))) {
         writeSource(reader, output, inputFile.lines());
@@ -54,7 +57,7 @@ public class SourcePublisher implements ReportPublisherStep {
     }
   }
 
-  private static void writeSource(BufferedReader reader, FileOutputStream output, int lines) throws IOException {
+  private static void writeSource(BufferedReader reader, OutputStream output, int lines) throws IOException {
     int line = 0;
     String lineStr = reader.readLine();
     while (lineStr != null) {