commit 0ba44ec1c767b6faeb76b53c11a3aaefa33e0c83 Author: Karsten Loesing karsten.loesing@gmx.net Date: Thu Aug 31 21:45:32 2017 +0200
Use try-with-resources in more places. --- .../org/torproject/metrics/hidserv/Aggregator.java | 8 +++----- .../torproject/metrics/hidserv/DocumentStore.java | 16 +++++----------- .../org/torproject/metrics/hidserv/Parser.java | 14 +++++--------- .../org/torproject/ernie/cron/Configuration.java | 4 +--- .../cron/network/ConsensusStatsFileHandler.java | 22 +++++++++------------- .../metrics/web/graphs/RObjectGenerator.java | 15 ++++++--------- .../metrics/web/research/ResearchStatsServlet.java | 11 ++++------- 7 files changed, 33 insertions(+), 57 deletions(-)
diff --git a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Aggregator.java b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Aggregator.java index ea09a78..c438ea2 100644 --- a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Aggregator.java +++ b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Aggregator.java @@ -184,12 +184,10 @@ public class Aggregator { }
/* Write all aggregated results to the output file. */ - try { - this.hidservStatsCsvFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter(new FileWriter( - this.hidservStatsCsvFile)); + this.hidservStatsCsvFile.getParentFile().mkdirs(); + try (BufferedWriter bw = new BufferedWriter(new FileWriter( + this.hidservStatsCsvFile))) { bw.write(sb.toString()); - bw.close(); } catch (IOException e) { System.err.printf("Unable to write results to %s. Ignoring."); } diff --git a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java index db60f83..5ecb849 100644 --- a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java +++ b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/DocumentStore.java @@ -74,10 +74,9 @@ public class DocumentStore<T extends Document> {
/* Write to a new temporary file, then move it into place, possibly * overwriting an existing file. */ - try { - documentTempFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter(new FileWriter( - documentTempFile)); + documentTempFile.getParentFile().mkdirs(); + try (BufferedWriter bw = new BufferedWriter(new FileWriter( + documentTempFile))) { for (Map.Entry<String, SortedSet<String>> e : formattedDocuments.entrySet()) { bw.write(e.getKey() + "\n"); @@ -85,7 +84,6 @@ public class DocumentStore<T extends Document> { bw.write(" " + s + "\n"); } } - bw.close(); documentFile.delete(); documentTempFile.renameTo(documentFile); } catch (IOException e) { @@ -116,9 +114,8 @@ public class DocumentStore<T extends Document> {
/* Parse the document file line by line and de-serialize contained * documents. */ - try { - LineNumberReader lnr = new LineNumberReader(new BufferedReader( - new FileReader(documentFile))); + try (LineNumberReader lnr = new LineNumberReader(new BufferedReader( + new FileReader(documentFile)))) { String line; String formattedString0 = null; while ((line = lnr.readLine()) != null) { @@ -128,7 +125,6 @@ public class DocumentStore<T extends Document> { System.err.printf("First line in %s must not start with a " + "space. Not retrieving any previously stored " + "documents.%n", documentFile.getAbsolutePath()); - lnr.close(); return null; } else if (prefix.length() > formattedString0.length() && !(formattedString0 + line.substring(1)) @@ -146,13 +142,11 @@ public class DocumentStore<T extends Document> { System.err.printf("Unable to read line %d from %s. Not " + "retrieving any previously stored documents.%n", lnr.getLineNumber(), documentFile.getAbsolutePath()); - lnr.close(); return null; } result.add(document); } } - lnr.close(); } catch (IOException e) { System.err.printf("Unable to read %s. Not retrieving any " + "previously stored documents.%n", diff --git a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Parser.java b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Parser.java index ebfe869..3195dd8 100644 --- a/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Parser.java +++ b/modules/hidserv/src/main/java/org/torproject/metrics/hidserv/Parser.java @@ -96,9 +96,8 @@ public class Parser { if (this.parseHistoryFile.exists() && this.parseHistoryFile.isFile()) { SortedMap<String, Long> excludedFiles = new TreeMap<>(); - try { - BufferedReader br = new BufferedReader(new FileReader( - this.parseHistoryFile)); + try (BufferedReader br = new BufferedReader(new FileReader( + this.parseHistoryFile))) { String line; while ((line = br.readLine()) != null) { try { @@ -111,7 +110,6 @@ public class Parser { + "Skipping line.%n", line); } } - br.close(); } catch (IOException e) { System.err.printf("Could not read history file '%s'. Not " + "excluding descriptors in this execution.", @@ -135,10 +133,9 @@ public class Parser { excludedAndParsedFiles.putAll( this.descriptorReader.getExcludedFiles()); excludedAndParsedFiles.putAll(this.descriptorReader.getParsedFiles()); - try { - this.parseHistoryFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter(new FileWriter( - this.parseHistoryFile)); + this.parseHistoryFile.getParentFile().mkdirs(); + try (BufferedWriter bw = new BufferedWriter(new FileWriter( + this.parseHistoryFile))) { for (Map.Entry<String, Long> e : excludedAndParsedFiles.entrySet()) { /* Each line starts with the last-modified time of the descriptor @@ -148,7 +145,6 @@ public class Parser { bw.write(String.valueOf(lastModifiedMillis) + " " + absolutePath + "\n"); } - bw.close(); } catch (IOException e) { System.err.printf("Could not write history file '%s'. Not " + "excluding descriptors in next execution.", diff --git a/modules/legacy/src/main/java/org/torproject/ernie/cron/Configuration.java b/modules/legacy/src/main/java/org/torproject/ernie/cron/Configuration.java index d1bc63b..0c40293 100644 --- a/modules/legacy/src/main/java/org/torproject/ernie/cron/Configuration.java +++ b/modules/legacy/src/main/java/org/torproject/ernie/cron/Configuration.java @@ -57,8 +57,7 @@ public class Configuration { return; } String line = null; - try { - BufferedReader br = new BufferedReader(new FileReader(configFile)); + try (BufferedReader br = new BufferedReader(new FileReader(configFile))) { while ((line = br.readLine()) != null) { if (line.startsWith("#") || line.length() < 1) { continue; @@ -97,7 +96,6 @@ public class Configuration { System.exit(1); } } - br.close(); } catch (ArrayIndexOutOfBoundsException e) { logger.severe("Configuration file contains configuration key " + "without value in line '" + line + "'. Exiting!"); diff --git a/modules/legacy/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java b/modules/legacy/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java index c06acc3..fd77fa9 100644 --- a/modules/legacy/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java +++ b/modules/legacy/src/main/java/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java @@ -120,11 +120,10 @@ public class ConsensusStatsFileHandler {
/* Read in number of running bridges per bridge status. */ if (this.bridgeConsensusStatsRawFile.exists()) { - try { - this.logger.fine("Reading file " - + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "..."); - BufferedReader br = new BufferedReader(new FileReader( - this.bridgeConsensusStatsRawFile)); + this.logger.fine("Reading file " + + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "..."); + try (BufferedReader br = new BufferedReader(new FileReader( + this.bridgeConsensusStatsRawFile))) { String line = null; while ((line = br.readLine()) != null) { if (line.startsWith("date")) { @@ -151,7 +150,6 @@ public class ConsensusStatsFileHandler { } /* No more cases as we already checked the range above. */ this.bridgesRaw.put(key, value); } - br.close(); this.logger.fine("Finished reading file " + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "."); } catch (IOException e) { @@ -299,19 +297,17 @@ public class ConsensusStatsFileHandler { }
/* Write raw numbers of running bridges to disk. */ - try { - this.logger.fine("Writing file " - + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "..."); - this.bridgeConsensusStatsRawFile.getParentFile().mkdirs(); - BufferedWriter bw = new BufferedWriter( - new FileWriter(this.bridgeConsensusStatsRawFile)); + this.logger.fine("Writing file " + + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "..."); + this.bridgeConsensusStatsRawFile.getParentFile().mkdirs(); + try (BufferedWriter bw = new BufferedWriter( + new FileWriter(this.bridgeConsensusStatsRawFile))) { bw.append("datetime,authority,brunning,brunningec2"); bw.newLine(); for (String line : this.bridgesRaw.values()) { bw.append(line); bw.newLine(); } - bw.close(); this.logger.fine("Finished writing file " + this.bridgeConsensusStatsRawFile.getAbsolutePath() + "."); } catch (IOException e) { diff --git a/website/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java b/website/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java index aa6ab4f..fa9e1d8 100644 --- a/website/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java +++ b/website/src/main/java/org/torproject/metrics/web/graphs/RObjectGenerator.java @@ -214,11 +214,9 @@ public class RObjectGenerator implements ServletContextListener { tableFilename, checkCache).getBytes();
/* Write the table content to a map. */ - List<Map<String, String>> result = null; - try { - result = new ArrayList<>(); - BufferedReader br = new BufferedReader(new InputStreamReader( - new ByteArrayInputStream(tableBytes))); + List<Map<String, String>> result = new ArrayList<>(); + try (BufferedReader br = new BufferedReader(new InputStreamReader( + new ByteArrayInputStream(tableBytes)))) { String line = br.readLine(); if (line != null) { List<String> headers = new ArrayList<>(Arrays.asList(line.split(","))); @@ -321,10 +319,9 @@ public class RObjectGenerator implements ServletContextListener {
/* Read the R object from disk and write it to a byte array. */ long lastModified = this.objectFile.lastModified(); - try { - BufferedInputStream bis = new BufferedInputStream( - new FileInputStream(this.objectFile), 1024); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try (BufferedInputStream bis = new BufferedInputStream( + new FileInputStream(this.objectFile), 1024); + ByteArrayOutputStream baos = new ByteArrayOutputStream()) { byte[] buffer = new byte[1024]; int length; while ((length = bis.read(buffer)) > 0) { diff --git a/website/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java b/website/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java index 0a37c04..4d657c9 100644 --- a/website/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java +++ b/website/src/main/java/org/torproject/metrics/web/research/ResearchStatsServlet.java @@ -102,18 +102,15 @@ public class ResearchStatsServlet extends HttpServlet { statsFile.length())); response.setHeader("Content-Disposition", "inline; filename="" + statsFile.getName() + """); - try { - BufferedInputStream bis = new BufferedInputStream( - new FileInputStream(statsFile), 8192); - BufferedOutputStream bos = new BufferedOutputStream( - response.getOutputStream()); + try (BufferedInputStream bis = new BufferedInputStream( + new FileInputStream(statsFile), 8192); + BufferedOutputStream bos = new BufferedOutputStream( + response.getOutputStream())) { byte[] buffer = new byte[8192]; int length; while ((length = bis.read(buffer)) > 0) { bos.write(buffer, 0, length); } - bos.close(); - bis.close(); } catch (IOException e) { return false; }