tor-commits
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
September 2018
- 17 participants
- 3231 discussions
[onionoo/release] Remove redundant escape in regular expressions.
by karsten@torproject.org 10 Sep '18
by karsten@torproject.org 10 Sep '18
10 Sep '18
commit 225d504fcf7b36df7fb9f0f36c5dc07c1d4cb6ed
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Mon Aug 20 20:47:55 2018 +0200
Remove redundant escape in regular expressions.
Turns out that characters inside square brackets don't need to be
escaped. In fact, "^[0-9\\.]{7,15}$" does not only match valid IPv4
addresses but also strings like "1\2\3\4".
---
.../java/org/torproject/onionoo/server/ResourceServlet.java | 10 +++++-----
.../java/org/torproject/onionoo/updater/LookupService.java | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
index 8f956a6..7567233 100644
--- a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
+++ b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
@@ -76,7 +76,7 @@ public class ResourceServlet extends HttpServlet {
+ "offset,fields").split(",")));
private static String ipv6AddressPatternString =
- "^\\[?[0-9a-fA-F:\\.]{1,39}\\]?$";
+ "^\\[?[0-9a-fA-F:.]{1,39}\\]?$";
private static Pattern ipv6AddressPattern =
Pattern.compile(ipv6AddressPatternString);
@@ -424,14 +424,14 @@ public class ResourceServlet extends HttpServlet {
}
private static Pattern searchQueryStringPattern =
- Pattern.compile("(?:.*[\\?&])*?" // lazily skip other parameters
+ Pattern.compile("(?:.*[?&])*?" // lazily skip other parameters
+ "search=([\\p{Graph} &&[^&]]+)" // capture parameter
+ "(?:&.*)*"); // skip remaining parameters
private static Pattern searchParameterPattern =
Pattern.compile("^\\$?[0-9a-fA-F]{1,40}$|" /* Hex fingerprint. */
+ "^[0-9a-zA-Z+/]{1,27}$|" /* Base64 fingerprint. */
- + "^[0-9a-zA-Z\\.]{1,19}$|" /* Nickname or IPv4 address. */
+ + "^[0-9a-zA-Z.]{1,19}$|" /* Nickname or IPv4 address. */
+ ipv6AddressPatternString + "|" /* IPv6 address. */
+ "^[a-zA-Z_]+:\"?[\\p{Graph} ]+\"?$"); /* Qualified search term. */
@@ -630,7 +630,7 @@ public class ResourceServlet extends HttpServlet {
}
private static Pattern versionParameterPattern =
- Pattern.compile("^[0-9a-zA-Z\\.-]+$");
+ Pattern.compile("^[0-9a-zA-Z.-]+$");
private String parseVersionParameter(String parameter) {
if (!versionParameterPattern.matcher(parameter).matches()) {
@@ -651,7 +651,7 @@ public class ResourceServlet extends HttpServlet {
}
private static Pattern hostNameParameterPattern =
- Pattern.compile("^[0-9A-Za-z_\\.\\-]+$");
+ Pattern.compile("^[0-9A-Za-z_.\\-]+$");
private String parseHostNameParameter(String parameter) {
if (!hostNameParameterPattern.matcher(parameter).matches()) {
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupService.java b/src/main/java/org/torproject/onionoo/updater/LookupService.java
index 9c07e68..976a9ca 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupService.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupService.java
@@ -70,7 +70,7 @@ public class LookupService {
this.hasAllFiles = true;
}
- private Pattern ipv4Pattern = Pattern.compile("^[0-9\\.]{7,15}$");
+ private Pattern ipv4Pattern = Pattern.compile("^[0-9.]{7,15}$");
private long parseAddressString(String addressString) {
long addressNumber = -1L;
1
0
10 Sep '18
commit d9eee3208c4861ccca9d6b4c1e118c4892f8febe
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Mon Aug 20 20:28:14 2018 +0200
Avoid redundant new String() call.
---
src/test/java/org/torproject/onionoo/util/FormattingUtilsTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/test/java/org/torproject/onionoo/util/FormattingUtilsTest.java b/src/test/java/org/torproject/onionoo/util/FormattingUtilsTest.java
index 8744696..24e96c4 100644
--- a/src/test/java/org/torproject/onionoo/util/FormattingUtilsTest.java
+++ b/src/test/java/org/torproject/onionoo/util/FormattingUtilsTest.java
@@ -38,6 +38,6 @@ public class FormattingUtilsTest {
@Test
public void testReplaceUtf() {
- assertEquals(out, new String(FormattingUtils.replaceValidUtf(in)));
+ assertEquals(out, FormattingUtils.replaceValidUtf(in));
}
}
1
0
[onionoo/release] Remove redundant modifiers from interface methods.
by karsten@torproject.org 10 Sep '18
by karsten@torproject.org 10 Sep '18
10 Sep '18
commit 6abd4270eea261d06d6f4619aec1004539539955
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Mon Aug 20 20:23:20 2018 +0200
Remove redundant modifiers from interface methods.
---
src/main/java/org/torproject/onionoo/updater/DescriptorListener.java | 2 +-
src/main/java/org/torproject/onionoo/updater/StatusUpdater.java | 4 ++--
src/main/java/org/torproject/onionoo/writer/DocumentWriter.java | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java b/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
index 5362ce2..6269772 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorListener.java
@@ -6,6 +6,6 @@ package org.torproject.onionoo.updater;
import org.torproject.descriptor.Descriptor;
public interface DescriptorListener {
- abstract void processDescriptor(Descriptor descriptor, boolean relay);
+ void processDescriptor(Descriptor descriptor, boolean relay);
}
diff --git a/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
index f17d797..9f6328a 100644
--- a/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/StatusUpdater.java
@@ -5,8 +5,8 @@ package org.torproject.onionoo.updater;
public interface StatusUpdater {
- public abstract void updateStatuses();
+ void updateStatuses();
- public abstract String getStatsString();
+ String getStatsString();
}
diff --git a/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java b/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
index 9fc893f..bf90d3e 100644
--- a/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
+++ b/src/main/java/org/torproject/onionoo/writer/DocumentWriter.java
@@ -5,8 +5,8 @@ package org.torproject.onionoo.writer;
public interface DocumentWriter {
- public abstract void writeDocuments(long mostRecentStatusMillis);
+ void writeDocuments(long mostRecentStatusMillis);
- public abstract String getStatsString();
+ String getStatsString();
}
1
0
commit d9cafd8e6b23f3520be78768272f08b180c2920f
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Mon Aug 20 16:32:12 2018 +0200
Remove redundant initializers.
---
src/main/java/org/torproject/onionoo/docs/ClientsHistory.java | 4 ++--
src/main/java/org/torproject/onionoo/docs/DocumentStore.java | 4 ++--
src/main/java/org/torproject/onionoo/docs/NodeStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/UptimeHistory.java | 2 +-
.../org/torproject/onionoo/server/HttpServletResponseWrapper.java | 2 +-
src/main/java/org/torproject/onionoo/server/ResourceServlet.java | 4 ++--
.../java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java | 2 +-
7 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
index 58e86e4..e4800e3 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
@@ -90,7 +90,7 @@ public class ClientsHistory implements Comparable<ClientsHistory> {
+ "'. Skipping.");
return null;
}
- double totalResponses = 0.0;
+ double totalResponses;
try {
totalResponses = Double.parseDouble(parts[4]);
} catch (NumberFormatException e) {
@@ -125,7 +125,7 @@ public class ClientsHistory implements Comparable<ClientsHistory> {
/* Logged by caller */
return null;
}
- double value = 0.0;
+ double value;
try {
value = Double.parseDouble(keyValue[1]);
} catch (NumberFormatException e) {
diff --git a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
index af67d91..c5444c5 100644
--- a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
+++ b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
@@ -469,7 +469,7 @@ public class DocumentStore {
+ "directory.");
return null;
}
- String documentString = null;
+ String documentString;
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(documentFile))) {
@@ -782,7 +782,7 @@ public class DocumentStore {
StringBuilder sb = new StringBuilder();
for (SummaryDocument summaryDocument :
this.cachedSummaryDocuments.values()) {
- String line = null;
+ String line;
try {
line = objectMapper.writeValueAsString(summaryDocument);
} catch (JsonProcessingException e) {
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index bef403b..fe55229 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -564,7 +564,7 @@ public class NodeStatus extends Document {
SortedSet<String> orAddressesAndPorts = new TreeSet<>();
SortedSet<String> exitAddresses = new TreeSet<>();
String addresses = parts[3];
- String address = null;
+ String address;
if (addresses.contains(";")) {
String[] addressParts = addresses.split(";", -1);
if (addressParts.length != 3) {
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
index ef73a1c..0297b37 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
@@ -78,7 +78,7 @@ public class UptimeHistory implements Comparable<UptimeHistory> {
+ uptimeHistoryString + "'. Skipping.");
return null;
}
- int uptimeHours = -1;
+ int uptimeHours;
try {
uptimeHours = Integer.parseInt(parts[2]);
} catch (NumberFormatException e) {
diff --git a/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java b/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
index f6888a4..4734e63 100644
--- a/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
+++ b/src/main/java/org/torproject/onionoo/server/HttpServletResponseWrapper.java
@@ -10,7 +10,7 @@ import javax.servlet.http.HttpServletResponse;
public class HttpServletResponseWrapper {
- private HttpServletResponse response = null;
+ private HttpServletResponse response;
protected HttpServletResponseWrapper(HttpServletResponse response) {
this.response = response;
diff --git a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
index 4257348..8f956a6 100644
--- a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
+++ b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
@@ -109,7 +109,7 @@ public class ResourceServlet extends HttpServlet {
if (uri.startsWith("/onionoo/")) {
uri = uri.substring("/onionoo".length());
}
- String resourceType = null;
+ String resourceType;
if (uri.startsWith("/summary")) {
resourceType = "summary";
} else if (uri.startsWith("/details")) {
@@ -388,7 +388,7 @@ public class ResourceServlet extends HttpServlet {
rb.setBridgesSkipped(rh.getBridgesSkipped());
rb.setRelaysTruncated(rh.getRelaysTruncated());
rb.setBridgesTruncated(rh.getBridgesTruncated());
- String[] fields = null;
+ String[] fields;
if (parameterMap.containsKey("fields")) {
fields = this.parseFieldsParameter(parameterMap.get("fields"));
if (fields == null) {
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index 054ccf5..7223e5a 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -458,7 +458,7 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
for (String fingerprint : previouslyKnownNodes) {
NodeStatus nodeStatus = this.documentStore.retrieve(
NodeStatus.class, true, fingerprint);
- NodeStatus updatedNodeStatus = null;
+ NodeStatus updatedNodeStatus;
if (this.knownNodes.containsKey(fingerprint)) {
updatedNodeStatus = this.knownNodes.get(fingerprint);
String address = nodeStatus.getAddress();
1
0
commit 76bd01bfeee57e254684b2db38872749a9596b8a
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 09:23:01 2018 +0200
Remove unnecessary modifiers.
---
src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java | 2 +-
src/main/java/org/torproject/onionoo/updater/DescriptorType.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java b/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
index 8fd92ca..0ab2d3d 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorHistory.java
@@ -16,7 +16,7 @@ public enum DescriptorHistory {
private String fileName;
- private DescriptorHistory(String fileName) {
+ DescriptorHistory(String fileName) {
this.fileName = fileName;
}
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorType.java b/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
index e039254..de318c9 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorType.java
@@ -13,7 +13,7 @@ public enum DescriptorType {
BRIDGE_EXTRA_INFOS("bridge-descriptors/extra-infos");
private final String dir;
- private DescriptorType(String dir) {
+ DescriptorType(String dir) {
this.dir = dir;
}
1
0
[onionoo/release] Avoid double-initialization of a local variable.
by karsten@torproject.org 10 Sep '18
by karsten@torproject.org 10 Sep '18
10 Sep '18
commit b756eee63254cbdd72bd5aca6f9d339a7b421014
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 12:01:31 2018 +0200
Avoid double-initialization of a local variable.
Note that the previous code was not wrong. It declared a local
variable and it read a line (containing headers). But these are two
distinct things, and doing them on one line confused the code
analyzer. Splitting them is just fine.
---
src/main/java/org/torproject/onionoo/updater/LookupService.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupService.java b/src/main/java/org/torproject/onionoo/updater/LookupService.java
index 495fec7..44c4d84 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupService.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupService.java
@@ -129,7 +129,8 @@ public class LookupService {
this.geoLite2CityBlocksIPv4CsvFile)) {
SortedSet<Long> sortedAddressNumbers = new TreeSet<>(
addressStringNumbers.values());
- String line = br.readLine();
+ String line;
+ br.readLine();
while ((line = br.readLine()) != null) {
String[] parts = line.split(",", -1);
if (parts.length < 9) {
@@ -187,7 +188,8 @@ public class LookupService {
try (BufferedReader br = this.createBufferedReaderFromUtf8File(
this.geoLite2CityLocationsEnCsvFile)) {
Set<Long> blockNumbers = new HashSet<>(addressNumberBlocks.values());
- String line = br.readLine();
+ String line;
+ br.readLine();
while ((line = br.readLine()) != null) {
String[] parts = line.replaceAll("\"", "").split(",", 13);
if (parts.length != 13) {
1
0
commit 680118d0b0168865fae20a2d00109358817af98b
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 09:52:44 2018 +0200
Make a couple JavaDoc fixes.
---
src/main/java/org/torproject/onionoo/docs/NodeStatus.java | 2 +-
src/main/java/org/torproject/onionoo/docs/SummaryDocument.java | 6 +++---
src/main/java/org/torproject/onionoo/server/NodeIndexer.java | 6 +++---
src/main/java/org/torproject/onionoo/server/ResourceServlet.java | 4 ++--
src/main/java/org/torproject/onionoo/updater/LookupService.java | 2 +-
src/main/java/org/torproject/onionoo/util/FormattingUtils.java | 2 +-
6 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index fe55229..1940198 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
* are relevant descriptors, consensuses or other documents available.
*
* <p>At the end of each run of the hourly updater, these documents are
- * concatenated and written to a single file in <code>status/summary</code>.
+ * concatenated and written to a single file in {@code status/summary}.
* Each line contains a single document.
*
* <p>A new NodeStatus can be created from a string using the
diff --git a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
index c4308ec..5286f6c 100644
--- a/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
+++ b/src/main/java/org/torproject/onionoo/docs/SummaryDocument.java
@@ -58,7 +58,7 @@ public class SummaryDocument extends Document {
@JsonIgnore
private transient String hashedFingerprint = null;
- /** Returns the SHA1-hashed fingerprint, or <code>null</code> if no
+ /** Returns the SHA1-hashed fingerprint, or {@code null} if no
* fingerprint is set. */
public String getHashedFingerprint() {
if (this.hashedFingerprint == null && this.fingerprint != null) {
@@ -75,7 +75,7 @@ public class SummaryDocument extends Document {
@JsonIgnore
private transient String base64Fingerprint = null;
- /** Returns the base64-encoded fingerprint, or <code>null</code> if no
+ /** Returns the base64-encoded fingerprint, or {@code null} if no
* fingerprint is set. */
public String getBase64Fingerprint() {
if (this.base64Fingerprint == null && this.fingerprint != null) {
@@ -93,7 +93,7 @@ public class SummaryDocument extends Document {
private transient String[] fingerprintSortedHexBlocks = null;
/** Returns a sorted array containing blocks of 4 upper-case hex
- * characters from the fingerprint, or <code>null</code> if no
+ * characters from the fingerprint, or {@code null} if no
* fingerprint is set. */
public String[] getFingerprintSortedHexBlocks() {
if (this.fingerprintSortedHexBlocks == null && this.fingerprint != null) {
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
index 350a3ef..73b6777 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
@@ -61,8 +61,8 @@ public class NodeIndexer implements ServletContextListener, Runnable {
private Thread nodeIndexerThread = null;
/** Returns the creation time of the last known node index in
- * milliseconds since the epoch, or <code>-1</code> if no node index
- * could be retrieved within <code>timeoutMillis</code> milliseconds. */
+ * milliseconds since the epoch, or {@code -1} if no node index
+ * could be retrieved within {@code timeoutMillis} milliseconds. */
public synchronized long getLastIndexed(long timeoutMillis) {
if (this.lastIndexed == -1L && this.nodeIndexerThread != null
&& timeoutMillis > 0L) {
@@ -77,7 +77,7 @@ public class NodeIndexer implements ServletContextListener, Runnable {
}
/** Returns the last known node index, or null if no node index could be
- * retrieved within <code>timeoutMillis</code> milliseconds. */
+ * retrieved within {@code timeoutMillis} milliseconds. */
public synchronized NodeIndex getLatestNodeIndex(long timeoutMillis) {
if (this.latestNodeIndex == null && this.nodeIndexerThread != null
&& timeoutMillis > 0L) {
diff --git a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
index 7567233..7913d22 100644
--- a/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
+++ b/src/main/java/org/torproject/onionoo/server/ResourceServlet.java
@@ -86,8 +86,8 @@ public class ResourceServlet extends HttpServlet {
doGet(request, response, System.currentTimeMillis());
}
- /** Handles the HTTP GET request in the wrapped <code>request</code> by
- * writing an HTTP GET response to the likewise <code>response</code>,
+ /** Handles the HTTP GET request in the wrapped {@code request} by
+ * writing an HTTP GET response to the likewise {@code response},
* both of which are wrapped to facilitate testing. */
@SuppressWarnings("checkstyle:variabledeclarationusagedistance")
public void doGet(HttpServletRequestWrapper request,
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupService.java b/src/main/java/org/torproject/onionoo/updater/LookupService.java
index 976a9ca..dd35b59 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupService.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupService.java
@@ -98,7 +98,7 @@ public class LookupService {
}
/** Looks up address strings in the configured
- * <code>GeoLite2-City-*.csv</code> and <code>GeoIPASNum2.csv</code>
+ * {@code GeoLite2-City-*.csv} and {@code GeoIPASNum2.csv}
* files and returns all lookup results. */
public SortedMap<String, LookupResult> lookup(
SortedSet<String> addressStrings) {
diff --git a/src/main/java/org/torproject/onionoo/util/FormattingUtils.java b/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
index 558477d..5307384 100644
--- a/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
+++ b/src/main/java/org/torproject/onionoo/util/FormattingUtils.java
@@ -25,7 +25,7 @@ public class FormattingUtils {
private static final long ONE_MINUTE = 60L * ONE_SECOND;
/** Formats the given number of milliseconds using the format
- * <code>"${minutes}:${seconds}.{milliseconds} minutes"</code>. */
+ * {@code "${minutes}:${seconds}.{milliseconds} minutes"}. */
public static String formatMillis(long millis) {
return String.format("%02d:%02d.%03d minutes", millis / ONE_MINUTE,
(millis % ONE_MINUTE) / ONE_SECOND, millis % ONE_SECOND);
1
0
[onionoo/release] Use Map.putIfAbsent and Map.getOrDefault where possible.
by karsten@torproject.org 10 Sep '18
by karsten@torproject.org 10 Sep '18
10 Sep '18
commit c51c4f20a56e56ff3d72b129666b824712f02d10
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 14:46:16 2018 +0200
Use Map.putIfAbsent and Map.getOrDefault where possible.
---
.../torproject/onionoo/docs/ClientsHistory.java | 9 +--
.../org/torproject/onionoo/docs/NodeStatus.java | 7 +--
.../onionoo/server/MostFrequentString.java | 17 ++----
.../org/torproject/onionoo/server/NodeIndexer.java | 68 ++++++----------------
.../onionoo/updater/ClientsStatusUpdater.java | 8 +--
.../onionoo/updater/DescriptorSource.java | 5 +-
.../onionoo/updater/NodeDetailsStatusUpdater.java | 20 ++-----
.../onionoo/updater/UptimeStatusUpdater.java | 9 +--
.../onionoo/docs/DummyDocumentStore.java | 4 +-
.../onionoo/server/ResourceServletTest.java | 5 +-
.../onionoo/updater/DummyDescriptorSource.java | 9 +--
11 files changed, 42 insertions(+), 119 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
index 0efe181..1890060 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
@@ -181,12 +181,9 @@ public class ClientsHistory implements Comparable<ClientsHistory> {
SortedMap<String, Double> thisResponses,
SortedMap<String, Double> otherResponses) {
for (Map.Entry<String, Double> e : otherResponses.entrySet()) {
- if (thisResponses.containsKey(e.getKey())) {
- thisResponses.put(e.getKey(), thisResponses.get(e.getKey())
- + e.getValue());
- } else {
- thisResponses.put(e.getKey(), e.getValue());
- }
+ thisResponses.putIfAbsent(e.getKey(), 0.0);
+ thisResponses.put(e.getKey(), thisResponses.get(e.getKey())
+ + e.getValue());
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index 9080b84..32965dd 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -335,11 +335,8 @@ public class NodeStatus extends Document {
addressesAndPorts.add(address + ":" + dirPort);
}
addressesAndPorts.addAll(orAddressesAndPorts);
- if (this.lastAddresses.containsKey(lastSeenMillis)) {
- this.lastAddresses.get(lastSeenMillis).addAll(addressesAndPorts);
- } else {
- this.lastAddresses.put(lastSeenMillis, addressesAndPorts);
- }
+ this.lastAddresses.putIfAbsent(lastSeenMillis, new TreeSet<>());
+ this.lastAddresses.get(lastSeenMillis).addAll(addressesAndPorts);
}
/** Returns the time in milliseconds since the epoch when addresses or
diff --git a/src/main/java/org/torproject/onionoo/server/MostFrequentString.java b/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
index 3d4d4c2..a6b7cb5 100644
--- a/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
+++ b/src/main/java/org/torproject/onionoo/server/MostFrequentString.java
@@ -3,7 +3,6 @@
package org.torproject.onionoo.server;
-import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -17,12 +16,8 @@ class MostFrequentString {
Map<String, Integer> stringFrequencies = new HashMap<>();
void addString(String string) {
- if (!this.stringFrequencies.containsKey(string)) {
- this.stringFrequencies.put(string, 1);
- } else {
- this.stringFrequencies.put(string,
- this.stringFrequencies.get(string) + 1);
- }
+ this.stringFrequencies.put(string,
+ this.stringFrequencies.getOrDefault(string, 0) + 1);
}
@Override
@@ -33,12 +28,8 @@ class MostFrequentString {
return "null (0)";
}
for (Map.Entry<String, Integer> e : stringFrequencies.entrySet()) {
- if (!sortedFrequencies.containsKey(e.getValue())) {
- sortedFrequencies.put(e.getValue(), new TreeSet<>(
- Arrays.asList(e.getKey())));
- } else {
- sortedFrequencies.get(e.getValue()).add(e.getKey());
- }
+ sortedFrequencies.putIfAbsent(e.getValue(), new TreeSet<>());
+ sortedFrequencies.get(e.getValue()).add(e.getKey());
}
StringBuilder sb = new StringBuilder();
int stringsToAdd = 3;
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
index 8388f33..80418aa 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
@@ -209,10 +209,7 @@ public class NodeIndexer implements ServletContextListener, Runnable {
* installations in international waters. */
countryCode = "xz";
}
- if (!newRelaysByCountryCode.containsKey(countryCode)) {
- newRelaysByCountryCode.put(countryCode,
- new HashSet<>());
- }
+ newRelaysByCountryCode.putIfAbsent(countryCode, new HashSet<>());
newRelaysByCountryCode.get(countryCode).add(fingerprint);
newRelaysByCountryCode.get(countryCode).add(hashedFingerprint);
String asNumber;
@@ -225,22 +222,16 @@ public class NodeIndexer implements ServletContextListener, Runnable {
* shouldn't appear in any lookup databases. */
asNumber = "AS0";
}
- if (!newRelaysByAsNumber.containsKey(asNumber)) {
- newRelaysByAsNumber.put(asNumber, new HashSet<>());
- }
+ newRelaysByAsNumber.putIfAbsent(asNumber, new HashSet<>());
newRelaysByAsNumber.get(asNumber).add(fingerprint);
newRelaysByAsNumber.get(asNumber).add(hashedFingerprint);
String asName = entry.getAsName();
- if (!newRelaysByAsName.containsKey(asName)) {
- newRelaysByAsName.put(asName, new HashSet<>());
- }
+ newRelaysByAsName.putIfAbsent(asName, new HashSet<>());
newRelaysByAsName.get(asName).add(fingerprint);
newRelaysByAsName.get(asName).add(hashedFingerprint);
for (String flag : entry.getRelayFlags()) {
String flagLowerCase = flag.toLowerCase();
- if (!newRelaysByFlag.containsKey(flagLowerCase)) {
- newRelaysByFlag.put(flagLowerCase, new HashSet<>());
- }
+ newRelaysByFlag.putIfAbsent(flagLowerCase, new HashSet<>());
newRelaysByFlag.get(flagLowerCase).add(fingerprint);
newRelaysByFlag.get(flagLowerCase).add(hashedFingerprint);
}
@@ -258,42 +249,31 @@ public class NodeIndexer implements ServletContextListener, Runnable {
int daysSinceFirstSeen = (int) ((
(specialTime < 0 ? System.currentTimeMillis() : specialTime)
- entry.getFirstSeenMillis()) / ONE_DAY);
- if (!newRelaysByFirstSeenDays.containsKey(daysSinceFirstSeen)) {
- newRelaysByFirstSeenDays.put(daysSinceFirstSeen,
- new HashSet<>());
- }
+ newRelaysByFirstSeenDays.putIfAbsent(daysSinceFirstSeen, new HashSet<>());
newRelaysByFirstSeenDays.get(daysSinceFirstSeen).add(fingerprint);
newRelaysByFirstSeenDays.get(daysSinceFirstSeen).add(
hashedFingerprint);
int daysSinceLastSeen = (int) ((
(specialTime < 0 ? System.currentTimeMillis() : specialTime)
- entry.getLastSeenMillis()) / ONE_DAY);
- if (!newRelaysByLastSeenDays.containsKey(daysSinceLastSeen)) {
- newRelaysByLastSeenDays.put(daysSinceLastSeen,
- new HashSet<>());
- }
+ newRelaysByLastSeenDays.putIfAbsent(daysSinceLastSeen, new HashSet<>());
newRelaysByLastSeenDays.get(daysSinceLastSeen).add(fingerprint);
newRelaysByLastSeenDays.get(daysSinceLastSeen).add(
hashedFingerprint);
String contact = entry.getContact();
- if (!newRelaysByContact.containsKey(contact)) {
- newRelaysByContact.put(contact, new HashSet<>());
- }
+ newRelaysByContact.putIfAbsent(contact, new HashSet<>());
newRelaysByContact.get(contact).add(fingerprint);
newRelaysByContact.get(contact).add(hashedFingerprint);
String version = entry.getVersion();
if (null != version) {
- if (!newRelaysByVersion.containsKey(version)) {
- newRelaysByVersion.put(version, new HashSet<>());
- }
+ newRelaysByVersion.putIfAbsent(version, new HashSet<>());
newRelaysByVersion.get(version).add(fingerprint);
newRelaysByVersion.get(version).add(hashedFingerprint);
}
String operatingSystem = entry.getOperatingSystem();
if (null != operatingSystem) {
- if (!newRelaysByOperatingSystem.containsKey(operatingSystem)) {
- newRelaysByOperatingSystem.put(operatingSystem, new HashSet<>());
- }
+ newRelaysByOperatingSystem.putIfAbsent(operatingSystem,
+ new HashSet<>());
newRelaysByOperatingSystem.get(operatingSystem).add(fingerprint);
newRelaysByOperatingSystem.get(operatingSystem).add(hashedFingerprint);
}
@@ -308,9 +288,7 @@ public class NodeIndexer implements ServletContextListener, Runnable {
}
for (String hostName : allHostNames) {
String hostNameLowerCase = hostName.toLowerCase();
- if (!newRelaysByHostName.containsKey(hostNameLowerCase)) {
- newRelaysByHostName.put(hostNameLowerCase, new HashSet<>());
- }
+ newRelaysByHostName.putIfAbsent(hostNameLowerCase, new HashSet<>());
newRelaysByHostName.get(hostNameLowerCase).add(fingerprint);
newRelaysByHostName.get(hostNameLowerCase).add(hashedFingerprint);
}
@@ -346,9 +324,7 @@ public class NodeIndexer implements ServletContextListener, Runnable {
entry);
for (String flag : entry.getRelayFlags()) {
String flagLowerCase = flag.toLowerCase();
- if (!newBridgesByFlag.containsKey(flagLowerCase)) {
- newBridgesByFlag.put(flagLowerCase, new HashSet<>());
- }
+ newBridgesByFlag.putIfAbsent(flagLowerCase, new HashSet<>());
newBridgesByFlag.get(flagLowerCase).add(hashedFingerprint);
newBridgesByFlag.get(flagLowerCase).add(
hashedHashedFingerprint);
@@ -356,10 +332,8 @@ public class NodeIndexer implements ServletContextListener, Runnable {
int daysSinceFirstSeen = (int) ((
(specialTime < 0 ? System.currentTimeMillis() : specialTime)
- entry.getFirstSeenMillis()) / ONE_DAY);
- if (!newBridgesByFirstSeenDays.containsKey(daysSinceFirstSeen)) {
- newBridgesByFirstSeenDays.put(daysSinceFirstSeen,
- new HashSet<>());
- }
+ newBridgesByFirstSeenDays.putIfAbsent(daysSinceFirstSeen,
+ new HashSet<>());
newBridgesByFirstSeenDays.get(daysSinceFirstSeen).add(
hashedFingerprint);
newBridgesByFirstSeenDays.get(daysSinceFirstSeen).add(
@@ -367,27 +341,21 @@ public class NodeIndexer implements ServletContextListener, Runnable {
int daysSinceLastSeen = (int) ((
(specialTime < 0 ? System.currentTimeMillis() : specialTime)
- entry.getLastSeenMillis()) / ONE_DAY);
- if (!newBridgesByLastSeenDays.containsKey(daysSinceLastSeen)) {
- newBridgesByLastSeenDays.put(daysSinceLastSeen,
- new HashSet<>());
- }
+ newBridgesByLastSeenDays.putIfAbsent(daysSinceLastSeen, new HashSet<>());
newBridgesByLastSeenDays.get(daysSinceLastSeen).add(
hashedFingerprint);
newBridgesByLastSeenDays.get(daysSinceLastSeen).add(
hashedHashedFingerprint);
String version = entry.getVersion();
if (null != version) {
- if (!newBridgesByVersion.containsKey(version)) {
- newBridgesByVersion.put(version, new HashSet<>());
- }
+ newBridgesByVersion.putIfAbsent(version, new HashSet<>());
newBridgesByVersion.get(version).add(hashedFingerprint);
newBridgesByVersion.get(version).add(hashedHashedFingerprint);
}
String operatingSystem = entry.getOperatingSystem();
if (null != operatingSystem) {
- if (!newBridgesByOperatingSystem.containsKey(operatingSystem)) {
- newBridgesByOperatingSystem.put(operatingSystem, new HashSet<>());
- }
+ newBridgesByOperatingSystem.putIfAbsent(operatingSystem,
+ new HashSet<>());
newBridgesByOperatingSystem.get(operatingSystem)
.add(hashedFingerprint);
newBridgesByOperatingSystem.get(operatingSystem)
diff --git a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
index 205e391..e7ccd0b 100644
--- a/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/ClientsStatusUpdater.java
@@ -114,12 +114,8 @@ public class ClientsStatusUpdater implements DescriptorListener,
ClientsHistory newResponseHistory = new ClientsHistory(
startMillis, endMillis, totalResponses, responsesByCountry,
responsesByTransport, responsesByVersion);
- if (!this.newResponses.containsKey(hashedFingerprint)) {
- this.newResponses.put(hashedFingerprint,
- new TreeSet<>());
- }
- this.newResponses.get(hashedFingerprint).add(
- newResponseHistory);
+ this.newResponses.putIfAbsent(hashedFingerprint, new TreeSet<>());
+ this.newResponses.get(hashedFingerprint).add(newResponseHistory);
}
}
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
index 65d342a..afa27a5 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
@@ -81,10 +81,7 @@ public class DescriptorSource {
/** Registers a descriptor listener for a given descriptor type. */
public void registerDescriptorListener(DescriptorListener listener,
DescriptorType descriptorType) {
- if (!this.descriptorListeners.containsKey(descriptorType)) {
- this.descriptorListeners.put(descriptorType,
- new HashSet<>());
- }
+ this.descriptorListeners.putIfAbsent(descriptorType, new HashSet<>());
this.descriptorListeners.get(descriptorType).add(listener);
}
diff --git a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
index 1cd989d..9bb4ab7 100644
--- a/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/NodeDetailsStatusUpdater.java
@@ -223,16 +223,11 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
if (scanMillis < this.now - DateTimeHelper.ONE_DAY) {
continue;
}
- if (!this.exitListEntries.containsKey(fingerprint)) {
- this.exitListEntries.put(fingerprint, new HashMap<>());
- }
+ this.exitListEntries.putIfAbsent(fingerprint, new HashMap<>());
String exitAddress = exitAddressScanMillis.getKey();
- if (!this.exitListEntries.get(fingerprint).containsKey(
- exitAddress)
- || this.exitListEntries.get(fingerprint).get(exitAddress)
+ if (this.exitListEntries.get(fingerprint).getOrDefault(exitAddress, 0L)
< scanMillis) {
- this.exitListEntries.get(fingerprint).put(exitAddress,
- scanMillis);
+ this.exitListEntries.get(fingerprint).put(exitAddress, scanMillis);
}
}
}
@@ -288,14 +283,12 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
nodeStatus.setVersion(version);
}
if (entry.getUnmeasured()) {
- if (!this.lastSeenUnmeasured.containsKey(fingerprint)
- || this.lastSeenUnmeasured.get(fingerprint)
+ if (this.lastSeenUnmeasured.getOrDefault(fingerprint, 0L)
< validAfterMillis) {
this.lastSeenUnmeasured.put(fingerprint, validAfterMillis);
}
} else if (consensus.getConsensusMethod() >= 17) {
- if (!this.lastSeenMeasured.containsKey(fingerprint)
- || this.lastSeenMeasured.get(fingerprint)
+ if (this.lastSeenMeasured.getOrDefault(fingerprint, 0L)
< validAfterMillis) {
this.lastSeenMeasured.put(fingerprint, validAfterMillis);
}
@@ -846,8 +839,7 @@ public class NodeDetailsStatusUpdater implements DescriptorListener,
this.exitListEntries.get(fingerprint).entrySet()) {
String exitAddress = e.getKey();
long scanMillis = e.getValue();
- if (!exitAddresses.containsKey(exitAddress)
- || exitAddresses.get(exitAddress) < scanMillis) {
+ if (exitAddresses.getOrDefault(exitAddress, 0L) < scanMillis) {
exitAddresses.put(exitAddress, scanMillis);
}
}
diff --git a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
index f1ff574..58cd2fb 100644
--- a/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
+++ b/src/main/java/org/torproject/onionoo/updater/UptimeStatusUpdater.java
@@ -103,10 +103,7 @@ public class UptimeStatusUpdater implements DescriptorListener,
for (NetworkStatusEntry entry :
consensus.getStatusEntries().values()) {
String fingerprint = entry.getFingerprint();
- if (!this.newRunningRelays.containsKey(fingerprint)) {
- this.newRunningRelays.put(fingerprint,
- new TreeMap<>());
- }
+ this.newRunningRelays.putIfAbsent(fingerprint, new TreeMap<>());
this.newRunningRelays.get(fingerprint).put(dateHourMillis,
new Flags(entry.getFlags()));
}
@@ -124,9 +121,7 @@ public class UptimeStatusUpdater implements DescriptorListener,
long dateHourMillis = (status.getPublishedMillis()
/ DateTimeHelper.ONE_HOUR) * DateTimeHelper.ONE_HOUR;
for (String fingerprint : fingerprints) {
- if (!this.newRunningBridges.containsKey(fingerprint)) {
- this.newRunningBridges.put(fingerprint, new TreeSet<>());
- }
+ this.newRunningBridges.putIfAbsent(fingerprint, new TreeSet<>());
this.newRunningBridges.get(fingerprint).add(dateHourMillis);
}
this.newBridgeStatuses.add(dateHourMillis);
diff --git a/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java b/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
index 3c79235..a8f51ae 100644
--- a/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
+++ b/src/test/java/org/torproject/onionoo/docs/DummyDocumentStore.java
@@ -19,9 +19,7 @@ public class DummyDocumentStore extends DocumentStore {
private <T extends Document> SortedMap<String, Document>
getStoredDocumentsByClass(Class<T> documentType) {
- if (!this.storedDocuments.containsKey(documentType)) {
- this.storedDocuments.put(documentType, new TreeMap<>());
- }
+ this.storedDocuments.putIfAbsent(documentType, new TreeMap<>());
return this.storedDocuments.get(documentType);
}
diff --git a/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java b/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
index 022381b..a6042b1 100644
--- a/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
+++ b/src/test/java/org/torproject/onionoo/server/ResourceServletTest.java
@@ -335,10 +335,7 @@ public class ResourceServletTest {
new HashMap<>();
for (String parameter : uriParts[1].split("&")) {
String[] parameterParts = parameter.split("=");
- if (!parameterLists.containsKey(parameterParts[0])) {
- parameterLists.put(parameterParts[0],
- new ArrayList<>());
- }
+ parameterLists.putIfAbsent(parameterParts[0], new ArrayList<>());
parameterLists.get(parameterParts[0]).add(parameterParts[1]);
}
parameters = new HashMap<>();
diff --git a/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java b/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
index 22ae477..e31585d 100644
--- a/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
+++ b/src/test/java/org/torproject/onionoo/updater/DummyDescriptorSource.java
@@ -31,9 +31,7 @@ public class DummyDescriptorSource extends DescriptorSource {
private Set<Descriptor> getDescriptorsByType(
DescriptorType descriptorType) {
- if (!this.descriptors.containsKey(descriptorType)) {
- this.descriptors.put(descriptorType, new HashSet<>());
- }
+ this.descriptors.putIfAbsent(descriptorType, new HashSet<>());
return this.descriptors.get(descriptorType);
}
@@ -43,10 +41,7 @@ public class DummyDescriptorSource extends DescriptorSource {
/** Register a listener to receive descriptors of the demanded type. */
public void registerDescriptorListener(DescriptorListener listener,
DescriptorType descriptorType) {
- if (!this.descriptorListeners.containsKey(descriptorType)) {
- this.descriptorListeners.put(descriptorType,
- new HashSet<>());
- }
+ this.descriptorListeners.putIfAbsent(descriptorType, new HashSet<>());
this.descriptorListeners.get(descriptorType).add(listener);
}
1
0
commit b8e3e95f00e5a6e0a8a8fbd424a7d0c4b5e91860
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 10:22:01 2018 +0200
Use parameterized log statements.
---
.../java/org/torproject/onionoo/cron/Main.java | 8 +--
.../torproject/onionoo/docs/BandwidthStatus.java | 4 +-
.../torproject/onionoo/docs/ClientsHistory.java | 22 +++---
.../org/torproject/onionoo/docs/ClientsStatus.java | 4 +-
.../org/torproject/onionoo/docs/DocumentStore.java | 82 ++++++++++------------
.../org/torproject/onionoo/docs/NodeStatus.java | 30 ++++----
.../org/torproject/onionoo/docs/UpdateStatus.java | 4 +-
.../org/torproject/onionoo/docs/UptimeHistory.java | 17 +++--
.../org/torproject/onionoo/docs/UptimeStatus.java | 4 +-
.../org/torproject/onionoo/docs/WeightsStatus.java | 12 ++--
.../org/torproject/onionoo/server/NodeIndexer.java | 4 +-
.../onionoo/server/PerformanceMetrics.java | 45 +++++-------
.../org/torproject/onionoo/server/ServerMain.java | 4 +-
.../onionoo/updater/DescriptorQueue.java | 21 +++---
.../onionoo/updater/DescriptorSource.java | 6 +-
.../torproject/onionoo/updater/LookupService.java | 60 +++++++---------
.../onionoo/updater/StatusUpdateRunner.java | 17 +++--
.../onionoo/writer/DocumentWriterRunner.java | 5 +-
18 files changed, 158 insertions(+), 191 deletions(-)
diff --git a/src/main/java/org/torproject/onionoo/cron/Main.java b/src/main/java/org/torproject/onionoo/cron/Main.java
index 9b34356..8e5812d 100644
--- a/src/main/java/org/torproject/onionoo/cron/Main.java
+++ b/src/main/java/org/torproject/onionoo/cron/Main.java
@@ -115,8 +115,8 @@ public class Main implements Runnable {
int initialDelay = (75 - currentMinute + currentMinute % 5) % 60;
/* Run after initialDelay delay and then every hour. */
- this.log.info("Periodic updater will start every hour at minute "
- + ((currentMinute + initialDelay) % 60) + ".");
+ this.log.info("Periodic updater will start every hour at minute {}.",
+ (currentMinute + initialDelay) % 60);
this.scheduler.scheduleAtFixedRate(mainRunnable, initialDelay, 60,
TimeUnit.MINUTES);
}
@@ -210,10 +210,10 @@ public class Main implements Runnable {
this.dwr.logStatistics();
}
if (this.dso != null) {
- this.log.info("Descriptor source\n" + this.dso.getStatsString());
+ this.log.info("Descriptor source\n{}", this.dso.getStatsString());
}
if (this.ds != null) {
- this.log.info("Document store\n" + this.ds.getStatsString());
+ this.log.info("Document store\n{}", this.ds.getStatsString());
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
index 20e2e27..258e0e4 100644
--- a/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/BandwidthStatus.java
@@ -55,8 +55,8 @@ public class BandwidthStatus extends Document {
String line = s.nextLine();
String[] parts = line.split(" ");
if (parts.length != 6) {
- log.error("Illegal line '" + line + "' in bandwidth "
- + "history. Skipping this line.");
+ log.error("Illegal line '{}' in bandwidth history. Skipping this "
+ + "line.", line);
continue;
}
SortedMap<Long, long[]> history = parts[0].equals("r")
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
index e4800e3..0efe181 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsHistory.java
@@ -73,29 +73,28 @@ public class ClientsHistory implements Comparable<ClientsHistory> {
String responseHistoryString) {
String[] parts = responseHistoryString.split(" ", 8);
if (parts.length != 8) {
- log.warn("Invalid number of space-separated strings in clients "
- + "history: '" + responseHistoryString + "'. Skipping");
+ log.warn("Invalid number of space-separated strings in clients history: "
+ + "'{}'. Skipping", responseHistoryString);
return null;
}
long startMillis = DateTimeHelper.parse(parts[0] + " " + parts[1]);
long endMillis = DateTimeHelper.parse(parts[2] + " " + parts[3]);
if (startMillis < 0L || endMillis < 0L) {
- log.warn("Invalid start or end timestamp in clients history: '"
- + responseHistoryString + "'. Skipping.");
+ log.warn("Invalid start or end timestamp in clients history: '{}'. "
+ + "Skipping.", responseHistoryString);
return null;
}
if (startMillis >= endMillis) {
- log.warn("Start timestamp must be smaller than end timestamp in "
- + "clients history: '" + responseHistoryString
- + "'. Skipping.");
+ log.warn("Start timestamp must be smaller than end timestamp in clients "
+ + "history: '{}'. Skipping.", responseHistoryString);
return null;
}
double totalResponses;
try {
totalResponses = Double.parseDouble(parts[4]);
} catch (NumberFormatException e) {
- log.warn("Invalid response number format in clients history: '"
- + responseHistoryString + "'. Skipping.");
+ log.warn("Invalid response number format in clients history: '{}'. "
+ + "Skipping.", responseHistoryString);
return null;
}
SortedMap<String, Double> responsesByCountry =
@@ -106,9 +105,8 @@ public class ClientsHistory implements Comparable<ClientsHistory> {
parseResponses(parts[7]);
if (responsesByCountry == null || responsesByTransport == null
|| responsesByVersion == null) {
- log.warn("Invalid format of responses by country, transport, or "
- + "version in clients history: '" + responseHistoryString
- + "'. Skipping.");
+ log.warn("Invalid format of responses by country, transport, or version "
+ + "in clients history: '{}'. Skipping.", responseHistoryString);
return null;
}
return new ClientsHistory(startMillis, endMillis, totalResponses,
diff --git a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
index 21a76e1..6de115b 100644
--- a/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/ClientsStatus.java
@@ -44,8 +44,8 @@ public class ClientsStatus extends Document {
if (parsedLine != null) {
this.history.add(parsedLine);
} else {
- log.error("Could not parse clients history line '"
- + line + "'. Skipping.");
+ log.error("Could not parse clients history line '{}'. Skipping.",
+ line);
}
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
index c5444c5..49176f8 100644
--- a/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
+++ b/src/main/java/org/torproject/onionoo/docs/DocumentStore.java
@@ -135,8 +135,8 @@ public class DocumentStore {
this.listedFiles += parsedNodeStatuses.size();
this.listOperations++;
} catch (IOException e) {
- log.error("Could not read file '"
- + summaryFile.getAbsolutePath() + "'.", e);
+ log.error("Could not read file '{}'.", summaryFile.getAbsolutePath(),
+ e);
}
}
}
@@ -339,15 +339,15 @@ public class DocumentStore {
|| document instanceof UpdateStatus) {
documentString = document.toDocumentString();
} else {
- log.error("Serializing is not supported for type "
- + document.getClass().getName() + ".");
+ log.error("Serializing is not supported for type {}.",
+ document.getClass().getName());
return false;
}
try {
if (documentString.length() > ONE_MIBIBYTE) {
- log.warn("Attempting to store very large document file: path='"
- + documentFile.getAbsolutePath() + "', bytes="
- + documentString.length());
+ log.warn("Attempting to store very large document file: path='{}', "
+ + "bytes={}", documentFile.getAbsolutePath(),
+ documentString.length());
}
documentFile.getParentFile().mkdirs();
File documentTempFile = new File(
@@ -358,8 +358,8 @@ public class DocumentStore {
this.storedFiles++;
this.storedBytes += documentString.length();
} catch (IOException e) {
- log.error("Could not write file '"
- + documentFile.getAbsolutePath() + "'.", e);
+ log.error("Could not write file '{}'.", documentFile.getAbsolutePath(),
+ e);
return false;
}
return true;
@@ -419,10 +419,10 @@ public class DocumentStore {
String contact = null;
for (String orAddressAndPort : detailsDocument.getOrAddresses()) {
if (!orAddressAndPort.contains(":")) {
- log.warn("Attempt to create summary document from details "
- + "document for fingerprint " + fingerprint + " failed "
- + "because of invalid OR address/port: '" + orAddressAndPort
- + "'. Not returning a summary document in this case.");
+ log.warn("Attempt to create summary document from details document for "
+ + "fingerprint {} failed because of invalid OR address/port: '{}'. "
+ + "Not returning a summary document in this case.", fingerprint,
+ orAddressAndPort);
return null;
}
String orAddress = orAddressAndPort.substring(0,
@@ -464,9 +464,8 @@ public class DocumentStore {
/* Document file does not exist. That's okay. */
return null;
} else if (documentFile.isDirectory()) {
- log.error("Could not read file '"
- + documentFile.getAbsolutePath() + "', because it is a "
- + "directory.");
+ log.error("Could not read file '{}', because it is a directory.",
+ documentFile.getAbsolutePath());
return null;
}
String documentString;
@@ -487,14 +486,12 @@ public class DocumentStore {
this.retrievedFiles++;
this.retrievedBytes += documentString.length();
} catch (IOException e) {
- log.error("Could not read file '"
- + documentFile.getAbsolutePath() + "'.", e);
+ log.error("Could not read file '{}'.", documentFile.getAbsolutePath(), e);
return null;
}
if (documentString.length() > ONE_MIBIBYTE) {
- log.warn("Retrieved very large document file: path='"
- + documentFile.getAbsolutePath() + "', bytes="
- + documentString.length());
+ log.warn("Retrieved very large document file: path='{}', bytes={}",
+ documentFile.getAbsolutePath(), documentString.length());
}
T result = null;
if (!parse) {
@@ -517,8 +514,8 @@ public class DocumentStore {
return this.retrieveParsedDocumentFile(documentType, "{"
+ documentString + "}");
} else {
- log.error("Parsing is not supported for type "
- + documentType.getName() + ".");
+ log.error("Parsing is not supported for type {}.",
+ documentType.getName());
}
return result;
}
@@ -534,8 +531,8 @@ public class DocumentStore {
log.error(e.getMessage(), e);
}
if (result == null) {
- log.error("Could not initialize parsed status file of "
- + "type " + documentType.getName() + ".");
+ log.error("Could not initialize parsed status file of type {}.",
+ documentType.getName());
}
return result;
}
@@ -551,8 +548,8 @@ public class DocumentStore {
log.error(e.getMessage(), e);
}
if (result == null) {
- log.error("Could not initialize parsed document of type "
- + documentType.getName() + ".");
+ log.error("Could not initialize parsed document of type {}.",
+ documentType.getName());
}
return result;
}
@@ -568,8 +565,8 @@ public class DocumentStore {
log.error(e.getMessage(), e);
}
if (result == null) {
- log.error("Could not initialize unparsed document of type "
- + documentType.getName() + ".");
+ log.error("Could not initialize unparsed document of type {}.",
+ documentType.getName());
}
return result;
}
@@ -611,8 +608,7 @@ public class DocumentStore {
Class<T> documentType, String fingerprint) {
File documentFile = this.getDocumentFile(documentType, fingerprint);
if (documentFile == null || !documentFile.delete()) {
- log.error("Could not delete file '"
- + documentFile.getAbsolutePath() + "'.");
+ log.error("Could not delete file '{}'.", documentFile.getAbsolutePath());
return false;
}
this.removedFiles++;
@@ -624,9 +620,9 @@ public class DocumentStore {
File documentFile = null;
if (fingerprint == null && !documentType.equals(UpdateStatus.class)
&& !documentType.equals(UptimeStatus.class)) {
- log.warn("Attempted to locate a document file of type "
- + documentType.getName() + " without providing a fingerprint. "
- + "Such a file does not exist.");
+ log.warn("Attempted to locate a document file of type {} without "
+ + "providing a fingerprint. Such a file does not exist.",
+ documentType.getName());
return null;
}
File directory = null;
@@ -739,8 +735,8 @@ public class DocumentStore {
if (line != null) {
sb.append(line).append("\n");
} else {
- log.error("Could not serialize relay node status '"
- + relay.getFingerprint() + "'");
+ log.error("Could not serialize relay node status '{}'",
+ relay.getFingerprint());
}
}
for (NodeStatus bridge : cachedBridges.values()) {
@@ -748,8 +744,8 @@ public class DocumentStore {
if (line != null) {
sb.append(line).append("\n");
} else {
- log.error("Could not serialize bridge node status '"
- + bridge.getFingerprint() + "'");
+ log.error("Could not serialize bridge node status '{}'",
+ bridge.getFingerprint());
}
}
String documentString = sb.toString();
@@ -761,8 +757,7 @@ public class DocumentStore {
this.storedFiles++;
this.storedBytes += documentString.length();
} catch (IOException e) {
- log.error("Could not write file '"
- + summaryFile.getAbsolutePath() + "'.", e);
+ log.error("Could not write file '{}'.", summaryFile.getAbsolutePath(), e);
}
}
@@ -791,8 +786,8 @@ public class DocumentStore {
if (line != null) {
sb.append(line).append("\n");
} else {
- log.error("Could not serialize relay summary document '"
- + summaryDocument.getFingerprint() + "'");
+ log.error("Could not serialize relay summary document '{}'",
+ summaryDocument.getFingerprint());
}
}
String documentString = sb.toString();
@@ -805,8 +800,7 @@ public class DocumentStore {
this.storedFiles++;
this.storedBytes += documentString.length();
} catch (IOException e) {
- log.error("Could not write file '"
- + summaryFile.getAbsolutePath() + "'.", e);
+ log.error("Could not write file '{}'.", summaryFile.getAbsolutePath(), e);
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
index 1940198..9080b84 100644
--- a/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/NodeStatus.java
@@ -553,8 +553,8 @@ public class NodeStatus extends Document {
try {
String[] parts = documentString.trim().split("\t");
if (parts.length < 23) {
- log.error("Too few space-separated values in line '"
- + documentString.trim() + "'. Skipping.");
+ log.error("Too few space-separated values in line '{}'. Skipping.",
+ documentString.trim());
return null;
}
String fingerprint = parts[2];
@@ -568,8 +568,8 @@ public class NodeStatus extends Document {
if (addresses.contains(";")) {
String[] addressParts = addresses.split(";", -1);
if (addressParts.length != 3) {
- log.error("Invalid addresses entry in line '"
- + documentString.trim() + "'. Skipping.");
+ log.error("Invalid addresses entry in line '{}'. Skipping.",
+ documentString.trim());
return null;
}
address = addressParts[0];
@@ -590,8 +590,8 @@ public class NodeStatus extends Document {
long lastSeenMillis = DateTimeHelper.parse(parts[4] + " "
+ parts[5]);
if (lastSeenMillis < 0L) {
- log.error("Parse exception while parsing node status "
- + "line '" + documentString + "'. Skipping.");
+ log.error("Parse exception while parsing node status line '{}'. "
+ + "Skipping.", documentString);
return null;
} else if (lastSeenMillis == 0L) {
log.debug("Skipping node status with fingerprint {} that has so far "
@@ -617,8 +617,8 @@ public class NodeStatus extends Document {
}
long firstSeenMillis = DateTimeHelper.parse(parts[15] + " " + parts[16]);
if (firstSeenMillis < 0L) {
- log.error("Parse exception while parsing node status "
- + "line '" + documentString + "'. Skipping.");
+ log.error("Parse exception while parsing node status line '{}'. "
+ + "Skipping.", documentString);
return null;
}
nodeStatus.setFirstSeenMillis(firstSeenMillis);
@@ -627,8 +627,8 @@ public class NodeStatus extends Document {
lastChangedAddresses = DateTimeHelper.parse(parts[17] + " "
+ parts[18]);
if (lastChangedAddresses < 0L) {
- log.error("Parse exception while parsing node status "
- + "line '" + documentString + "'. Skipping.");
+ log.error("Parse exception while parsing node status line '{}'. "
+ + "Skipping.", documentString);
return null;
}
}
@@ -693,16 +693,14 @@ public class NodeStatus extends Document {
}
return nodeStatus;
} catch (NumberFormatException e) {
- log.error("Number format exception while parsing node "
- + "status line '" + documentString + "': " + e.getMessage()
- + ". Skipping.");
+ log.error("Number format exception while parsing node status line '{}'. "
+ + "Skipping.", documentString, e);
return null;
} catch (Exception e) {
/* This catch block is only here to handle yet unknown errors. It
* should go away once we're sure what kind of errors can occur. */
- log.error("Unknown exception while parsing node status "
- + "line '" + documentString + "': " + e.getMessage() + ". "
- + "Skipping.");
+ log.error("Unknown exception while parsing node status line '{}'. "
+ + "Skipping.", documentString, e);
return null;
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java b/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
index 889a52d..11f32f9 100644
--- a/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/UpdateStatus.java
@@ -25,8 +25,8 @@ public class UpdateStatus extends Document {
try {
this.updatedMillis = Long.parseLong(documentString.trim());
} catch (NumberFormatException e) {
- log.error("Could not parse timestamp '" + documentString + "'. "
- + "Setting to 1970-01-01 00:00:00.");
+ log.error("Could not parse timestamp '{}'. Setting to 1970-01-01 "
+ + "00:00:00.", documentString);
this.updatedMillis = 0L;
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
index 0297b37..8bbb5b7 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeHistory.java
@@ -58,32 +58,31 @@ public class UptimeHistory implements Comparable<UptimeHistory> {
public static UptimeHistory fromString(String uptimeHistoryString) {
String[] parts = uptimeHistoryString.split(" ", -1);
if (parts.length < 3) {
- log.warn("Invalid number of space-separated strings in uptime "
- + "history: '" + uptimeHistoryString + "'. Skipping");
+ log.warn("Invalid number of space-separated strings in uptime history: "
+ + "'{}'. Skipping", uptimeHistoryString);
return null;
}
boolean relay = false;
if (parts[0].equalsIgnoreCase("r")) {
relay = true;
} else if (!parts[0].equals("b")) {
- log.warn("Invalid node type in uptime history: '"
- + uptimeHistoryString + "'. Supported types are 'r', 'R', and "
- + "'b'. Skipping.");
+ log.warn("Invalid node type in uptime history: '{}'. Supported types are "
+ + "'r', 'R', and 'b'. Skipping.", uptimeHistoryString);
return null;
}
long startMillis = DateTimeHelper.parse(parts[1],
DateTimeHelper.DATEHOUR_NOSPACE_FORMAT);
if (DateTimeHelper.NO_TIME_AVAILABLE == startMillis) {
- log.warn("Invalid start timestamp in uptime history: '"
- + uptimeHistoryString + "'. Skipping.");
+ log.warn("Invalid start timestamp in uptime history: '{}'. Skipping.",
+ uptimeHistoryString);
return null;
}
int uptimeHours;
try {
uptimeHours = Integer.parseInt(parts[2]);
} catch (NumberFormatException e) {
- log.warn("Invalid number format in uptime history: '"
- + uptimeHistoryString + "'. Skipping.");
+ log.warn("Invalid number format in uptime history: '{}'. Skipping.",
+ uptimeHistoryString);
return null;
}
SortedSet<String> flags = null;
diff --git a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
index bec5028..8fa5960 100644
--- a/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/UptimeStatus.java
@@ -51,8 +51,8 @@ public class UptimeStatus extends Document {
this.bridgeHistory.add(parsedLine);
}
} else {
- log.error("Could not parse uptime history line '"
- + line + "'. Skipping.");
+ log.error("Could not parse uptime history line '{}'. Skipping.",
+ line);
}
}
}
diff --git a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
index f3b5452..c8b6fde 100644
--- a/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
+++ b/src/main/java/org/torproject/onionoo/docs/WeightsStatus.java
@@ -58,8 +58,8 @@ public class WeightsStatus extends Document {
continue;
}
if (parts.length != 9 && parts.length != 11) {
- log.error("Illegal line '" + line + "' in weights "
- + "status file. Skipping this line.");
+ log.error("Illegal line '{}' in weights status file. Skipping this "
+ + "line.", line);
continue;
}
if (parts[4].equals("NaN")) {
@@ -75,8 +75,8 @@ public class WeightsStatus extends Document {
break;
}
if (validAfterMillis > freshUntilMillis) {
- log.error("Illegal dates in '" + line + "' of weights "
- + "status file. Skipping.");
+ log.error("Illegal dates in '{}' of weights status file. Skipping.",
+ line);
break;
}
long[] interval = new long[] { validAfterMillis, freshUntilMillis };
@@ -91,8 +91,8 @@ public class WeightsStatus extends Document {
weights[6] = parseWeightDouble(parts[10]);
}
} catch (NumberFormatException e) {
- log.error("Could not parse weights values in line '" + line
- + "' while reading weights status file. Skipping.");
+ log.error("Could not parse weights values in line '{}' while reading "
+ + "weights status file. Skipping.", line);
break;
}
this.history.put(interval, weights);
diff --git a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
index 73b6777..8388f33 100644
--- a/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
+++ b/src/main/java/org/torproject/onionoo/server/NodeIndexer.java
@@ -37,8 +37,8 @@ public class NodeIndexer implements ServletContextListener, Runnable {
File outDir = new File(System.getProperty("onionoo.basedir",
"/srv/onionoo.torproject.org/onionoo"), "out");
if (!outDir.exists() || !outDir.isDirectory()) {
- log.error("\n\n\tOut-dir not found! Expected directory: " + outDir
- + "\n\tSet system property 'onionoo.basedir'.");
+ log.error("\n\n\tOut-dir not found! Expected directory: {}"
+ + "\n\tSet system property 'onionoo.basedir'.", outDir);
System.exit(1);
}
DocumentStore documentStore = DocumentStoreFactory.getDocumentStore();
diff --git a/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java b/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
index 98401ae..d0e7002 100644
--- a/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
+++ b/src/main/java/org/torproject/onionoo/server/PerformanceMetrics.java
@@ -65,26 +65,19 @@ public class PerformanceMetrics {
SimpleDateFormat dateTimeFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
dateTimeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- log.info("Request statistics ("
- + dateTimeFormat.format(lastLoggedMillis
- + LOG_INTERVAL_MILLIS) + ", " + (LOG_INTERVAL_SECONDS)
- + " s):");
- log.info(" Total processed requests: "
- + totalProcessedRequests);
- log.info(" Most frequently requested resource: "
- + requestsByResourceType);
- log.info(" Most frequently requested parameter "
- + "combinations: " + requestsByParameters);
- log.info(" Matching relays per request: "
- + matchingRelayDocuments);
- log.info(" Matching bridges per request: "
- + matchingBridgeDocuments);
- log.info(" Written characters per response: "
- + writtenChars);
- log.info(" Milliseconds to handle request: "
- + handleRequestMillis);
- log.info(" Milliseconds to build response: "
- + buildResponseMillis);
+ log.info("Request statistics ({}, {} s):",
+ dateTimeFormat.format(lastLoggedMillis + LOG_INTERVAL_MILLIS),
+ LOG_INTERVAL_SECONDS);
+ log.info(" Total processed requests: {}", totalProcessedRequests);
+ log.info(" Most frequently requested resource: {}",
+ requestsByResourceType);
+ log.info(" Most frequently requested parameter combinations: {}",
+ requestsByParameters);
+ log.info(" Matching relays per request: {}", matchingRelayDocuments);
+ log.info(" Matching bridges per request: {}", matchingBridgeDocuments);
+ log.info(" Written characters per response: {}", writtenChars);
+ log.info(" Milliseconds to handle request: {}", handleRequestMillis);
+ log.info(" Milliseconds to build response: {}", buildResponseMillis);
totalProcessedRequests.clear();
requestsByResourceType.clear();
requestsByParameters.clear();
@@ -101,9 +94,9 @@ public class PerformanceMetrics {
totalProcessedRequests.increment();
long handlingTime = parsedRequestMillis - receivedRequestMillis;
if (handlingTime > DateTimeHelper.ONE_SECOND) {
- log.warn("longer request handling: " + handlingTime + " ms for "
- + resourceType + " params: " + parameterKeys + " and "
- + charsWritten + " chars.");
+ log.warn("longer request handling: {} ms for {} params: {} and {} "
+ + "chars.", handlingTime, resourceType, parameterKeys,
+ charsWritten);
}
handleRequestMillis.addLong(handlingTime);
requestsByResourceType.addString(resourceType);
@@ -113,9 +106,9 @@ public class PerformanceMetrics {
writtenChars.addLong(charsWritten);
long responseTime = writtenResponseMillis - parsedRequestMillis;
if (responseTime > DateTimeHelper.ONE_SECOND) {
- log.warn("longer response building: " + responseTime + " ms for "
- + resourceType + " params: " + parameterKeys + " and "
- + charsWritten + " chars.");
+ log.warn("longer response building: {} ms for {} params: {} and {} "
+ + "chars.", responseTime, resourceType, parameterKeys,
+ charsWritten);
}
buildResponseMillis.addLong(responseTime);
}
diff --git a/src/main/java/org/torproject/onionoo/server/ServerMain.java b/src/main/java/org/torproject/onionoo/server/ServerMain.java
index a60974b..03a4f18 100644
--- a/src/main/java/org/torproject/onionoo/server/ServerMain.java
+++ b/src/main/java/org/torproject/onionoo/server/ServerMain.java
@@ -18,14 +18,14 @@ public class ServerMain {
public static void main(String[] args) {
try {
Resource onionooXml = Resource.newSystemResource("jetty.xml");
- log.info("Reading configuration from '" + onionooXml + "'.");
+ log.info("Reading configuration from '{}'.", onionooXml);
XmlConfiguration configuration = new XmlConfiguration(
onionooXml.getInputStream());
Server server = (Server) configuration.configure();
server.start();
server.join();
} catch (Exception ex) {
- log.error("Exiting, because of: " + ex.getMessage(), ex);
+ log.error("Exiting, because of: {}", ex.getMessage(), ex);
System.exit(1);
}
}
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
index d00b8b2..76e46a2 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorQueue.java
@@ -89,14 +89,14 @@ class DescriptorQueue {
String[] parts = line.split(" ", 2);
excludedFiles.put(parts[1], Long.parseLong(parts[0]));
} catch (NumberFormatException e) {
- log.error("Illegal line '" + line + "' in parse "
- + "history. Skipping line.");
+ log.error("Illegal line '{}' in parse history. Skipping line.",
+ line);
}
}
} catch (IOException e) {
- log.error("Could not read history file '"
- + this.historyFile.getAbsolutePath() + "'. Not excluding "
- + "descriptors in this execution.", e);
+ log.error("Could not read history file '{}'. Not excluding "
+ + "descriptors in this execution.",
+ this.historyFile.getAbsolutePath(), e);
return;
}
this.historySizeBefore = excludedFiles.size();
@@ -128,9 +128,8 @@ class DescriptorQueue {
+ "\n");
}
} catch (IOException e) {
- log.error("Could not write history file '"
- + this.historyFile.getAbsolutePath() + "'. Not excluding "
- + "descriptors in next execution.");
+ log.error("Could not write history file '{}'. Not excluding descriptors "
+ + "in next execution.", this.historyFile.getAbsolutePath());
}
}
@@ -144,9 +143,9 @@ class DescriptorQueue {
this.descriptors = this.descriptorReader.readDescriptors(
this.directory).iterator();
} else {
- log.error("Directory " + this.directory.getAbsolutePath()
- + " either does not exist or is not a directory. Not adding "
- + "to descriptor reader.");
+ log.error("Directory {} either does not exist or is not a directory. "
+ + "Not adding to descriptor reader.",
+ this.directory.getAbsolutePath());
return null;
}
}
diff --git a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
index 64bb0e4..65d342a 100644
--- a/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
+++ b/src/main/java/org/torproject/onionoo/updater/DescriptorSource.java
@@ -201,9 +201,9 @@ public class DescriptorSource {
}
}
if (descriptorType == null) {
- log.warn("Unrecognized descriptor in "
- + this.inArchiveDir.getAbsolutePath() + " with annotations "
- + descriptor.getAnnotations() + ". Skipping descriptor.");
+ log.warn("Unrecognized descriptor in {} with annotations {}. Skipping "
+ + "descriptor.", this.inArchiveDir.getAbsolutePath(),
+ descriptor.getAnnotations());
continue;
}
for (DescriptorListener descriptorListener :
diff --git a/src/main/java/org/torproject/onionoo/updater/LookupService.java b/src/main/java/org/torproject/onionoo/updater/LookupService.java
index dd35b59..495fec7 100644
--- a/src/main/java/org/torproject/onionoo/updater/LookupService.java
+++ b/src/main/java/org/torproject/onionoo/updater/LookupService.java
@@ -133,9 +133,8 @@ public class LookupService {
while ((line = br.readLine()) != null) {
String[] parts = line.split(",", -1);
if (parts.length < 9) {
- log.error("Illegal line '" + line + "' in "
- + this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath()
- + ".");
+ log.error("Illegal line '{}' in {}.", line,
+ this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath());
return lookupResults;
}
try {
@@ -143,18 +142,15 @@ public class LookupService {
String startAddressString = networkAddressAndMask[0];
long startIpNum = this.parseAddressString(startAddressString);
if (startIpNum < 0L) {
- log.error("Illegal IP address in '" + line + "' in "
- + this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath()
- + ".");
+ log.error("Illegal IP address in '{}' in {}.", line,
+ this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath());
return lookupResults;
}
int networkMaskLength = networkAddressAndMask.length < 2 ? 0
: Integer.parseInt(networkAddressAndMask[1]);
if (networkMaskLength < 8 || networkMaskLength > 32) {
- log.error("Missing or illegal network mask in '" + line
- + "' in "
- + this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath()
- + ".");
+ log.error("Missing or illegal network mask in '{}' in {}.", line,
+ this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath());
return lookupResults;
}
if (parts[1].length() == 0 && parts[2].length() == 0) {
@@ -175,17 +171,14 @@ public class LookupService {
}
}
} catch (NumberFormatException e) {
- log.error("Number format exception while parsing line '" + line
- + "' in "
- + this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath()
- + ".", e);
+ log.error("Number format exception while parsing line '{}' in {}.",
+ line, this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath(), e);
return lookupResults;
}
}
} catch (IOException e) {
- log.error("I/O exception while reading "
- + this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath()
- + ": " + e);
+ log.error("I/O exception while reading {}: {}",
+ this.geoLite2CityBlocksIPv4CsvFile.getAbsolutePath(), e);
return lookupResults;
}
@@ -198,9 +191,8 @@ public class LookupService {
while ((line = br.readLine()) != null) {
String[] parts = line.replaceAll("\"", "").split(",", 13);
if (parts.length != 13) {
- log.error("Illegal line '" + line + "' in "
- + this.geoLite2CityLocationsEnCsvFile.getAbsolutePath()
- + ".");
+ log.error("Illegal line '{}' in {}.", line,
+ this.geoLite2CityLocationsEnCsvFile.getAbsolutePath());
return lookupResults;
}
@@ -210,17 +202,14 @@ public class LookupService {
blockLocations.put(locId, line);
}
} catch (NumberFormatException e) {
- log.error("Number format exception while parsing line "
- + "'" + line + "' in "
- + this.geoLite2CityLocationsEnCsvFile.getAbsolutePath()
- + ".");
+ log.error("Number format exception while parsing line '{}' in {}.",
+ line, this.geoLite2CityLocationsEnCsvFile.getAbsolutePath());
return lookupResults;
}
}
} catch (IOException e) {
- log.error("I/O exception while reading "
- + this.geoLite2CityLocationsEnCsvFile.getAbsolutePath()
- + ": " + e);
+ log.error("I/O exception while reading {}: {}",
+ this.geoLite2CityLocationsEnCsvFile.getAbsolutePath(), e);
return lookupResults;
}
@@ -236,15 +225,15 @@ public class LookupService {
while ((line = br.readLine()) != null) {
String[] parts = line.replaceAll("\"", "").split(",", 3);
if (parts.length != 3) {
- log.error("Illegal line '" + line + "' in "
- + geoIpAsNum2CsvFile.getAbsolutePath() + ".");
+ log.error("Illegal line '{}' in {}.", line,
+ geoIpAsNum2CsvFile.getAbsolutePath());
return lookupResults;
}
try {
long startIpNum = Long.parseLong(parts[0]);
if (startIpNum <= previousStartIpNum) {
- log.error("Line '" + line + "' not sorted in "
- + geoIpAsNum2CsvFile.getAbsolutePath() + ".");
+ log.error("Line '{}' not sorted in {}.", line,
+ geoIpAsNum2CsvFile.getAbsolutePath());
return lookupResults;
}
previousStartIpNum = startIpNum;
@@ -274,15 +263,14 @@ public class LookupService {
break;
}
} catch (NumberFormatException e) {
- log.error("Number format exception while parsing line "
- + "'" + line + "' in "
- + geoIpAsNum2CsvFile.getAbsolutePath() + ".");
+ log.error("Number format exception while parsing line '{}' in {}.",
+ line, geoIpAsNum2CsvFile.getAbsolutePath());
return lookupResults;
}
}
} catch (IOException e) {
- log.error("I/O exception while reading "
- + geoIpAsNum2CsvFile.getAbsolutePath() + ": " + e);
+ log.error("I/O exception while reading {}: {}",
+ geoIpAsNum2CsvFile.getAbsolutePath(), e);
return lookupResults;
}
diff --git a/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java b/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
index 19d5c4b..d7eddfe 100644
--- a/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
+++ b/src/main/java/org/torproject/onionoo/updater/StatusUpdateRunner.java
@@ -37,10 +37,9 @@ public class StatusUpdateRunner {
/** Lets each configured status updater update its status files. */
public void updateStatuses() {
for (StatusUpdater su : this.statusUpdaters) {
- log.debug("Begin update of " + su.getClass().getSimpleName());
+ log.debug("Begin update of {}", su.getClass().getSimpleName());
su.updateStatuses();
- log.info(su.getClass().getSimpleName()
- + " updated status files");
+ log.info("{} updated status files", su.getClass().getSimpleName());
}
}
@@ -49,14 +48,14 @@ public class StatusUpdateRunner {
for (StatusUpdater su : this.statusUpdaters) {
String statsString = su.getStatsString();
if (statsString != null) {
- LoggerFactory.getLogger("statistics").info(
- su.getClass().getSimpleName() + "\n" + statsString);
+ LoggerFactory.getLogger("statistics").info("{}\n{}",
+ su.getClass().getSimpleName(), statsString);
}
}
- LoggerFactory.getLogger("statistics").info("GeoIP lookup service\n"
- + this.ls.getStatsString());
- LoggerFactory.getLogger("statistics").info("Reverse domain name "
- + "resolver\n" + this.rdnr.getStatsString());
+ LoggerFactory.getLogger("statistics")
+ .info("GeoIP lookup service\n{}", this.ls.getStatsString());
+ LoggerFactory.getLogger("statistics")
+ .info("Reverse domain name resolver\n{}", this.rdnr.getStatsString());
}
}
diff --git a/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java b/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
index 4ab8f7e..d69c129 100644
--- a/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
+++ b/src/main/java/org/torproject/onionoo/writer/DocumentWriterRunner.java
@@ -34,7 +34,7 @@ public class DocumentWriterRunner {
public void writeDocuments() {
long mostRecentStatusMillis = retrieveMostRecentStatusMillis();
for (DocumentWriter dw : this.documentWriters) {
- log.debug("Writing " + dw.getClass().getSimpleName());
+ log.debug("Writing {}", dw.getClass().getSimpleName());
dw.writeDocuments(mostRecentStatusMillis);
}
}
@@ -56,8 +56,7 @@ public class DocumentWriterRunner {
for (DocumentWriter dw : this.documentWriters) {
String statsString = dw.getStatsString();
if (statsString != null) {
- log.info(dw.getClass().getSimpleName() + "\n"
- + statsString);
+ log.info("{}\n{}", dw.getClass().getSimpleName(), statsString);
}
}
}
1
0
10 Sep '18
commit 91588c989c0c4cd489b3a13f11683266247399cb
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Tue Aug 21 11:47:29 2018 +0200
Remove an unnecessary return statement.
---
src/main/java/org/torproject/onionoo/server/RequestHandler.java | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/main/java/org/torproject/onionoo/server/RequestHandler.java b/src/main/java/org/torproject/onionoo/server/RequestHandler.java
index 81cd8dc..d1e9cce 100644
--- a/src/main/java/org/torproject/onionoo/server/RequestHandler.java
+++ b/src/main/java/org/torproject/onionoo/server/RequestHandler.java
@@ -209,7 +209,6 @@ public class RequestHandler {
private void filterByType() {
if (this.type == null) {
/* Not filtering by type. */
- return;
} else if (this.type.equals("relay")) {
this.filteredBridges.clear();
} else {
1
0