tor-commits
Threads by month
- ----- 2025 -----
- December
- 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
February 2017
- 14 participants
- 1812 discussions
[translation/tails-greeter-2] Update translations for tails-greeter-2
by translation@torproject.org 24 Feb '17
by translation@torproject.org 24 Feb '17
24 Feb '17
commit 3520ba3f203923c61d2ac685585571284d9dd490
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Feb 24 11:48:10 2017 +0000
Update translations for tails-greeter-2
---
vi/vi.po | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/vi/vi.po b/vi/vi.po
index 5e82ca3..323fff7 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -171,6 +171,8 @@ msgstr "Khóa dung lượng bền vững lại"
#: ../data/greeter.ui.h:35
msgid "Your persistent storage is unlocked. Restart Tails to lock it again."
msgstr ""
+"Phân vùng lưu trữ bền vững của bạn bị mở khoá. Khởi độnt lại Tails để khoá "
+"nó lại."
#: ../data/greeter.ui.h:36 ../tailsgreeter/gui.py:554
msgid "Additional Settings"
@@ -182,7 +184,7 @@ msgstr "Lưu những cài đặt thêm"
#: ../data/greeter.ui.h:38
msgid "Add an additional setting"
-msgstr ""
+msgstr "Thêm một cài đặt nữa"
#: ../data/greeter.ui.h:39
msgid "Network Configuration"
@@ -301,6 +303,9 @@ msgid ""
"{stdout}\n"
"{stderr}"
msgstr ""
+"Tính trực tiếp-bền vững đã hỏng với mã trả về {returncode}:\n"
+"{stdout}\n"
+"{stderr}"
#: ../tailsgreeter/persistence.py:168
#, python-brace-format
1
0
[translation/tor-browser-manual] Update translations for tor-browser-manual
by translation@torproject.org 24 Feb '17
by translation@torproject.org 24 Feb '17
24 Feb '17
commit e0716bbfc00abf88974348228f2120b2c9a7f823
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Feb 24 11:18:21 2017 +0000
Update translations for tor-browser-manual
---
vi/vi.po | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/vi/vi.po b/vi/vi.po
index 67580d1..bd37042 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -792,7 +792,7 @@ msgstr ""
#: onionsites.page:46
msgid "How to access an onion service"
-msgstr "Làm thế nào để truy cập một dịch vụ Tor"
+msgstr "Làm thế nào để truy cập một dịch vụ onion"
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
@@ -814,8 +814,8 @@ msgid ""
"mostly random letters and numbers, followed by “.onion”."
msgstr ""
"Giống như bất kỳ trang web nào khác, bạn sẽ cần biết địa chỉ của một dịch vụ"
-" Tor để có thể kết nối. Một địa chỉ Tor là một dãy mười sáu chữ cái và con "
-"số gần như ngẫu nhiên, tiếp sau là “.onion”."
+" onion để có thể kết nối. Một địa chỉ onion là một dãy mười sáu chữ cái và "
+"con số gần như ngẫu nhiên, tiếp sau là “.onion”."
#: onionsites.page:58 troubleshooting.page:10
msgid "Troubleshooting"
@@ -827,9 +827,9 @@ msgid ""
"entered the 16-character onion address correctly: even a small mistake will "
"stop Tor Browser from being able to reach the site."
msgstr ""
-"Nếu bạn không thể truy cập dịch vụ Tor mà bạn cần, hãy đảm bảo rằng bạn vừa "
-"nhập 16 ký tự của địa chỉ Tor một cách chính xác: thậm chí một lỗi nhỏ cũng "
-"sẽ cản trở Trình duyệt Tor kết nối với trang đó."
+"Nếu bạn không thể truy cập dịch vụ onion mà bạn cần, hãy đảm bảo rằng bạn "
+"vừa nhập 16 ký tự của địa chỉ onion đó một cách chính xác: thậm chí một lỗi "
+"nhỏ cũng sẽ cản trở Trình duyệt Tor kết nối với trang đó."
#: onionsites.page:64
msgid ""
@@ -837,9 +837,9 @@ msgid ""
"later. There may be a temporary connection issue, or the site operators may "
"have allowed it to go offline without warning."
msgstr ""
-"Nếu bạn vẫn không thể kết nối với dịch vụ Tor, hãy thử lại sau. Có thể có "
-"một trục trặc tạm thời, hay trang web đó có thể đang ngắt kết nối mà không "
-"thông báo."
+"Nếu bạn vẫn không thể kết nối với dịch vụ onion đó, hãy thử lại sau. Có thể "
+"có một trục trặc tạm thời, hay trang web đó có thể đang ngắt kết nối mà "
+"không thông báo."
#: onionsites.page:69
msgid ""
@@ -847,7 +847,7 @@ msgid ""
"connecting to <link href=\"http://3g2upl4pq6kufc4m.onion/\">DuckDuckGo's "
"Onion Service</link>"
msgstr ""
-"Bạn cũng có thể đảm bảo rằng bạn có thể truy cập các dịch vụ Tor khác bởi "
+"Bạn cũng có thể đảm bảo rằng bạn có thể truy cập các dịch vụ onion khác bởi "
"kết nối đến <link href=\"http://3g2upl4pq6kufc4m.onion/\">Dịch vụ Tor của "
"DuckDuckGo</link>"
1
0
[translation/tails-greeter-2] Update translations for tails-greeter-2
by translation@torproject.org 24 Feb '17
by translation@torproject.org 24 Feb '17
24 Feb '17
commit b1e704f876a56b49e9729ce70538812e22654cbb
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Feb 24 11:18:09 2017 +0000
Update translations for tails-greeter-2
---
vi/vi.po | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vi/vi.po b/vi/vi.po
index d6f8dbe..5e82ca3 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -272,7 +272,7 @@ msgstr "Khởi động Tails"
#: ../tailsgreeter/language.py:119
msgid "default:LTR"
-msgstr ""
+msgstr "mặc định:LTR"
#: ../tailsgreeter/persistence.py:89
#, python-brace-format
1
0
[translation/tor-browser-manual] Update translations for tor-browser-manual
by translation@torproject.org 24 Feb '17
by translation@torproject.org 24 Feb '17
24 Feb '17
commit b7666c45c5d8178bca0fa0270d82e5206a699f77
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Feb 24 10:51:48 2017 +0000
Update translations for tor-browser-manual
---
vi/vi.po | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/vi/vi.po b/vi/vi.po
index e4789e7..67580d1 100644
--- a/vi/vi.po
+++ b/vi/vi.po
@@ -792,7 +792,7 @@ msgstr ""
#: onionsites.page:46
msgid "How to access an onion service"
-msgstr ""
+msgstr "Làm thế nào để truy cập một dịch vụ Tor"
#. This is a reference to an external file such as an image or video. When
#. the file changes, the md5 hash will change to let you know you need to
@@ -804,6 +804,8 @@ msgid ""
"external ref='media/onionsites/onion_url.png' "
"md5='f97f7fe10f07c3959c4430934974bbaa'"
msgstr ""
+"Tham chiếu ngoài ref='media/onionsites/onion_url.png' "
+"md5='f97f7fe10f07c3959c4430934974bbaa'"
#: onionsites.page:50
msgid ""
@@ -811,10 +813,13 @@ msgid ""
"service in order to connect to it. An onion address is a string of sixteen "
"mostly random letters and numbers, followed by “.onion”."
msgstr ""
+"Giống như bất kỳ trang web nào khác, bạn sẽ cần biết địa chỉ của một dịch vụ"
+" Tor để có thể kết nối. Một địa chỉ Tor là một dãy mười sáu chữ cái và con "
+"số gần như ngẫu nhiên, tiếp sau là “.onion”."
#: onionsites.page:58 troubleshooting.page:10
msgid "Troubleshooting"
-msgstr ""
+msgstr "Giải quyết vấn đề"
#: onionsites.page:59
msgid ""
1
0
24 Feb '17
commit 0e8a1c7f0355cf074435bbc4fb5c9fd506ffc21f
Author: Georg Koppen <gk(a)torproject.org>
Date: Fri Feb 24 09:32:01 2017 +0000
Adding comment for binutils patch
---
projects/binutils/build | 1 +
1 file changed, 1 insertion(+)
diff --git a/projects/binutils/build b/projects/binutils/build
index b7a6e72..cdd01a6 100644
--- a/projects/binutils/build
+++ b/projects/binutils/build
@@ -23,6 +23,7 @@ cd [% project %]-[% c("version") %]
sed 's/= extern_rt_rel_d;/= extern_rt_rel_d;\n memset (extern_rt_rel_d, 0, PE_IDATA5_SIZE);/' -i ld/pe-dll.c
# Needed for the hardening...
patch -p1 < ../enable-reloc-section-ld.patch
+# Zeroing timestamps in PE headers reliably, see bug 12753.
patch -p1 < ../peXXigen.patch
[% END -%]
./configure --prefix=$distdir [% c('var/configure_opt') %]
1
0
commit 192af41f2678695ee7593681b38a6724389c1692
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Feb 24 10:00:39 2017 +0100
Update to metrics-lib 1.6.0.
---
build.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build.xml b/build.xml
index 246a87e..f5b2767 100644
--- a/build.xml
+++ b/build.xml
@@ -12,7 +12,7 @@
<property name="webxmlfile" value="src/main/webapp/web.xml"/>
<property name="warfile" value="${dist}/exonerator.war"/>
<property name="source-and-target-java-version" value="1.7" />
- <property name="descriptorversion" value="1.5.0" />
+ <property name="descriptorversion" value="1.6.0" />
<path id="classpath">
<pathelement path="${classes}"/>
<fileset dir="${libs}">
1
0
commit 9a416d83e74723660b4511b7f3435b3a1c95129e
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Feb 23 14:14:30 2017 +0100
Update to latest metrics-base.
---
src/build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/build b/src/build
index bb0e1e5..6940759 160000
--- a/src/build
+++ b/src/build
@@ -1 +1 @@
-Subproject commit bb0e1e50ba75dfa15add334706d8ce288fbf2b0b
+Subproject commit 6940759436bbd3bdb117572886f6104f78c3b469
1
0
[collector/master] Use Java 7's diamond operator wherever possible.
by karsten@torproject.org 24 Feb '17
by karsten@torproject.org 24 Feb '17
24 Feb '17
commit 56ea752af2b4f614f08b2ab1017e77bbf6a88f9a
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Feb 23 14:17:27 2017 +0100
Use Java 7's diamond operator wherever possible.
Implements #21535.
---
.../bridgedescs/BridgeSnapshotReader.java | 6 ++---
.../bridgedescs/SanitizedBridgesWriter.java | 13 +++++-----
.../collector/exitlists/ExitListDownloader.java | 8 +++----
.../collector/index/CreateIndexJson.java | 8 +++----
.../collector/relaydescs/ArchiveReader.java | 10 ++++----
.../collector/relaydescs/ArchiveWriter.java | 28 ++++++++++------------
.../relaydescs/CachedRelayDescriptorReader.java | 8 +++----
.../collector/relaydescs/ReferenceChecker.java | 8 +++----
.../relaydescs/RelayDescriptorDownloader.java | 17 +++++++------
.../relaydescs/RelayDescriptorParser.java | 10 ++++----
.../collector/torperf/TorperfDownloader.java | 16 ++++++-------
11 files changed, 61 insertions(+), 71 deletions(-)
diff --git a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
index 0552307..9ffdf10 100644
--- a/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
+++ b/src/main/java/org/torproject/collector/bridgedescs/BridgeSnapshotReader.java
@@ -45,7 +45,7 @@ public class BridgeSnapshotReader {
throw new IllegalArgumentException();
}
- SortedSet<String> parsed = new TreeSet<String>();
+ SortedSet<String> parsed = new TreeSet<>();
File bdDir = bridgeDirectoriesDir;
File pbdFile = new File(statsDirectory, "parsed-bridge-directories");
boolean modified = false;
@@ -69,7 +69,7 @@ public class BridgeSnapshotReader {
}
logger.debug("Importing files in directory " + bridgeDirectoriesDir
+ "/...");
- Set<String> descriptorImportHistory = new HashSet<String>();
+ Set<String> descriptorImportHistory = new HashSet<>();
int parsedFiles = 0;
int skippedFiles = 0;
int parsedStatuses = 0;
@@ -77,7 +77,7 @@ public class BridgeSnapshotReader {
int skippedServerDescriptors = 0;
int parsedExtraInfoDescriptors = 0;
int skippedExtraInfoDescriptors = 0;
- Stack<File> filesInInputDir = new Stack<File>();
+ Stack<File> filesInInputDir = new Stack<>();
filesInInputDir.add(bdDir);
while (!filesInInputDir.isEmpty()) {
File pop = filesInInputDir.pop();
diff --git a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
index 45a7565..beeb944 100644
--- a/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
+++ b/src/main/java/org/torproject/collector/bridgedescs/SanitizedBridgesWriter.java
@@ -152,7 +152,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
/* Read hex-encoded secrets for replacing IP addresses with hashes
* from disk. */
- this.secretsForHashingIpAddresses = new TreeMap<String, byte[]>();
+ this.secretsForHashingIpAddresses = new TreeMap<>();
this.bridgeIpSecretsFile = new File(statsDirectory,
"bridge-ip-secrets");
if (this.bridgeIpSecretsFile.exists()) {
@@ -291,7 +291,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
/* Invalid IPv6 address. */
return null;
}
- List<String> hexParts = new ArrayList<String>();
+ List<String> hexParts = new ArrayList<>();
for (String doubleColonSeparatedPart : doubleColonSeparatedParts) {
StringBuilder hexPart = new StringBuilder();
String[] parts = doubleColonSeparatedPart.split(":", -1);
@@ -461,8 +461,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
/* Parse the given network status line by line. */
StringBuilder header = new StringBuilder();
- SortedMap<String, String> scrubbedLines =
- new TreeMap<String, String>();
+ SortedMap<String, String> scrubbedLines = new TreeMap<>();
try {
StringBuilder scrubbed = new StringBuilder();
BufferedReader br = new BufferedReader(new StringReader(new String(
@@ -692,7 +691,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
* read the fingerprint. */
} else if (line.startsWith("or-address ")) {
if (orAddresses == null) {
- orAddresses = new ArrayList<String>();
+ orAddresses = new ArrayList<>();
}
orAddresses.add(line.substring("or-address ".length()));
@@ -732,7 +731,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
scrubbedAddress = scrubIpv4Address(address, fingerprintBytes,
published);
if (orAddresses != null) {
- scrubbedOrAddresses = new ArrayList<String>();
+ scrubbedOrAddresses = new ArrayList<>();
for (String orAddress : orAddresses) {
String scrubbedOrAddress = scrubOrAddress(orAddress,
fingerprintBytes, published);
@@ -1395,7 +1394,7 @@ public class SanitizedBridgesWriter extends CollecTorMain {
public void cleanUpRsyncDirectory() throws ConfigurationException {
long cutOffMillis = System.currentTimeMillis()
- 3L * 24L * 60L * 60L * 1000L;
- Stack<File> allFiles = new Stack<File>();
+ Stack<File> allFiles = new Stack<>();
allFiles.add(new File(config.getPath(Key.RecentPath).toFile(),
BRIDGE_DESCRIPTORS));
while (!allFiles.isEmpty()) {
diff --git a/src/main/java/org/torproject/collector/exitlists/ExitListDownloader.java b/src/main/java/org/torproject/collector/exitlists/ExitListDownloader.java
index 0ac5112..7b8ccc4 100644
--- a/src/main/java/org/torproject/collector/exitlists/ExitListDownloader.java
+++ b/src/main/java/org/torproject/collector/exitlists/ExitListDownloader.java
@@ -162,13 +162,13 @@ public class ExitListDownloader extends CollecTorMain {
/* Write stats. */
StringBuilder dumpStats = new StringBuilder("Finished downloading "
+ "exit list.\nLast three exit lists are:");
- Stack<File> filesInInputDir = new Stack<File>();
+ Stack<File> filesInInputDir = new Stack<>();
filesInInputDir.add(new File(outputPathName));
- SortedSet<File> lastThreeExitLists = new TreeSet<File>();
+ SortedSet<File> lastThreeExitLists = new TreeSet<>();
while (!filesInInputDir.isEmpty()) {
File pop = filesInInputDir.pop();
if (pop.isDirectory()) {
- SortedSet<File> lastThreeElements = new TreeSet<File>();
+ SortedSet<File> lastThreeElements = new TreeSet<>();
for (File f : pop.listFiles()) {
lastThreeElements.add(f);
}
@@ -198,7 +198,7 @@ public class ExitListDownloader extends CollecTorMain {
public void cleanUpRsyncDirectory() throws ConfigurationException {
long cutOffMillis = System.currentTimeMillis()
- 3L * 24L * 60L * 60L * 1000L;
- Stack<File> allFiles = new Stack<File>();
+ Stack<File> allFiles = new Stack<>();
allFiles.add(new File(recentPathName));
while (!allFiles.isEmpty()) {
File file = allFiles.pop();
diff --git a/src/main/java/org/torproject/collector/index/CreateIndexJson.java b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
index ba3ea7b..4b1b8f0 100644
--- a/src/main/java/org/torproject/collector/index/CreateIndexJson.java
+++ b/src/main/java/org/torproject/collector/index/CreateIndexJson.java
@@ -148,8 +148,7 @@ public class CreateIndexJson extends CollecTorMain {
}
private IndexNode indexDirectories() {
- SortedSet<DirectoryNode> directoryNodes =
- new TreeSet<DirectoryNode>();
+ SortedSet<DirectoryNode> directoryNodes = new TreeSet<>();
logger.trace("indexing: " + indexedDirectories[0] + " "
+ indexedDirectories[1]);
for (File directory : indexedDirectories) {
@@ -165,9 +164,8 @@ public class CreateIndexJson extends CollecTorMain {
}
private DirectoryNode indexDirectory(File directory) {
- SortedSet<FileNode> fileNodes = new TreeSet<FileNode>();
- SortedSet<DirectoryNode> directoryNodes =
- new TreeSet<DirectoryNode>();
+ SortedSet<FileNode> fileNodes = new TreeSet<>();
+ SortedSet<DirectoryNode> directoryNodes = new TreeSet<>();
logger.trace("indexing: " + directory);
File[] fileList = directory.listFiles();
if (null == fileList) {
diff --git a/src/main/java/org/torproject/collector/relaydescs/ArchiveReader.java b/src/main/java/org/torproject/collector/relaydescs/ArchiveReader.java
index a4c19cf..88b2525 100644
--- a/src/main/java/org/torproject/collector/relaydescs/ArchiveReader.java
+++ b/src/main/java/org/torproject/collector/relaydescs/ArchiveReader.java
@@ -43,7 +43,7 @@ public class ArchiveReader {
ArchiveReader.class);
private Map<String, Set<String>> microdescriptorValidAfterTimes =
- new HashMap<String, Set<String>>();
+ new HashMap<>();
/** Reads all descriptors from the given directory, possibly using a
* parse history file, and passes them to the given descriptor
@@ -59,7 +59,7 @@ public class ArchiveReader {
rdp.setArchiveReader(this);
int parsedFiles = 0;
int ignoredFiles = 0;
- SortedSet<String> archivesImportHistory = new TreeSet<String>();
+ SortedSet<String> archivesImportHistory = new TreeSet<>();
File archivesImportHistoryFile = new File(statsDirectory,
"archives-import-history");
if (keepImportHistory && archivesImportHistoryFile.exists()) {
@@ -79,10 +79,10 @@ public class ArchiveReader {
if (archivesDirectory.exists()) {
logger.debug("Importing files in directory " + archivesDirectory
+ "/...");
- Stack<File> filesInInputDir = new Stack<File>();
+ Stack<File> filesInInputDir = new Stack<>();
filesInInputDir.add(archivesDirectory);
- List<File> problems = new ArrayList<File>();
- Set<File> filesToRetry = new HashSet<File>();
+ List<File> problems = new ArrayList<>();
+ Set<File> filesToRetry = new HashSet<>();
while (!filesInInputDir.isEmpty()) {
File pop = filesInInputDir.pop();
if (pop.isDirectory()) {
diff --git a/src/main/java/org/torproject/collector/relaydescs/ArchiveWriter.java b/src/main/java/org/torproject/collector/relaydescs/ArchiveWriter.java
index f2e3e6c..bc8244e 100644
--- a/src/main/java/org/torproject/collector/relaydescs/ArchiveWriter.java
+++ b/src/main/java/org/torproject/collector/relaydescs/ArchiveWriter.java
@@ -62,20 +62,17 @@ public class ArchiveWriter extends CollecTorMain {
private int storedMicrodescriptorsCounter = 0;
private SortedMap<Long, SortedSet<String>> storedConsensuses =
- new TreeMap<Long, SortedSet<String>>();
+ new TreeMap<>();
private SortedMap<Long, SortedSet<String>> storedMicrodescConsensuses =
- new TreeMap<Long, SortedSet<String>>();
- private SortedMap<Long, Integer> expectedVotes =
- new TreeMap<Long, Integer>();
- private SortedMap<Long, SortedMap<String, SortedSet<String>>>
- storedVotes =
- new TreeMap<Long, SortedMap<String, SortedSet<String>>>();
+ new TreeMap<>();
+ private SortedMap<Long, Integer> expectedVotes = new TreeMap<>();
+ private SortedMap<Long, SortedMap<String, SortedSet<String>>> storedVotes =
+ new TreeMap<>();
private SortedMap<Long, Map<String, String>> storedServerDescriptors =
- new TreeMap<Long, Map<String, String>>();
+ new TreeMap<>();
private SortedMap<Long, Set<String>> storedExtraInfoDescriptors =
- new TreeMap<Long, Set<String>>();
- private SortedMap<Long, Set<String>> storedMicrodescriptors =
- new TreeMap<Long, Set<String>>();
+ new TreeMap<>();
+ private SortedMap<Long, Set<String>> storedMicrodescriptors = new TreeMap<>();
private File storedServerDescriptorsFile;
private File storedExtraInfoDescriptorsFile;
@@ -334,18 +331,17 @@ public class ArchiveWriter extends CollecTorMain {
SimpleDateFormat dateTimeFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateTimeFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- Map<String, String> knownServerDescriptors =
- new HashMap<String, String>();
+ Map<String, String> knownServerDescriptors = new HashMap<>();
for (Map<String, String> descriptors :
this.storedServerDescriptors.values()) {
knownServerDescriptors.putAll(descriptors);
}
- Set<String> knownExtraInfoDescriptors = new HashSet<String>();
+ Set<String> knownExtraInfoDescriptors = new HashSet<>();
for (Set<String> descriptors :
this.storedExtraInfoDescriptors.values()) {
knownExtraInfoDescriptors.addAll(descriptors);
}
- Set<String> knownMicrodescriptors = new HashSet<String>();
+ Set<String> knownMicrodescriptors = new HashSet<>();
for (Set<String> descriptors : this.storedMicrodescriptors.values()) {
knownMicrodescriptors.addAll(descriptors);
}
@@ -564,7 +560,7 @@ public class ArchiveWriter extends CollecTorMain {
long cutOffMillis = System.currentTimeMillis()
- 3L * 24L * 60L * 60L * 1000L;
long cutOffMicroMillis = cutOffMillis - 27L * 24L * 60L * 60L * 1000L;
- Stack<File> allFiles = new Stack<File>();
+ Stack<File> allFiles = new Stack<>();
allFiles.add(new File(recentPathName, RELAY_DESCRIPTORS));
while (!allFiles.isEmpty()) {
File file = allFiles.pop();
diff --git a/src/main/java/org/torproject/collector/relaydescs/CachedRelayDescriptorReader.java b/src/main/java/org/torproject/collector/relaydescs/CachedRelayDescriptorReader.java
index 53b1e54..2fb9978 100644
--- a/src/main/java/org/torproject/collector/relaydescs/CachedRelayDescriptorReader.java
+++ b/src/main/java/org/torproject/collector/relaydescs/CachedRelayDescriptorReader.java
@@ -52,8 +52,8 @@ public class CachedRelayDescriptorReader {
/* Read import history containing SHA-1 digests of previously parsed
* statuses and descriptors, so that we can skip them in this run. */
- Set<String> lastImportHistory = new HashSet<String>();
- Set<String> currentImportHistory = new HashSet<String>();
+ Set<String> lastImportHistory = new HashSet<>();
+ Set<String> currentImportHistory = new HashSet<>();
File importHistoryFile = new File(statsDirectory,
"cacheddesc-import-history");
if (importHistoryFile.exists()) {
@@ -81,8 +81,8 @@ public class CachedRelayDescriptorReader {
}
logger.debug("Reading " + cachedDescDir.getAbsolutePath()
+ " directory.");
- SortedSet<File> cachedDescFiles = new TreeSet<File>();
- Stack<File> files = new Stack<File>();
+ SortedSet<File> cachedDescFiles = new TreeSet<>();
+ Stack<File> files = new Stack<>();
files.add(cachedDescDir);
while (!files.isEmpty()) {
File file = files.pop();
diff --git a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
index 5e7e86f..7c10379 100644
--- a/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
+++ b/src/main/java/org/torproject/collector/relaydescs/ReferenceChecker.java
@@ -49,7 +49,7 @@ public class ReferenceChecker {
private long currentTimeMillis;
- private SortedSet<Reference> references = new TreeSet<Reference>();
+ private SortedSet<Reference> references = new TreeSet<>();
private static DateFormat dateTimeFormat;
@@ -285,7 +285,7 @@ public class ReferenceChecker {
}
private void dropStaleReferences() {
- SortedSet<Reference> recentReferences = new TreeSet<Reference>();
+ SortedSet<Reference> recentReferences = new TreeSet<>();
for (Reference reference : this.references) {
if (this.currentTimeMillis <= reference.expiresAfterMillis) {
recentReferences.add(reference);
@@ -295,12 +295,12 @@ public class ReferenceChecker {
}
private void checkReferences() {
- Set<String> knownDescriptors = new HashSet<String>();
+ Set<String> knownDescriptors = new HashSet<>();
for (Reference reference : this.references) {
knownDescriptors.add(reference.referencing);
}
double totalMissingDescriptorsWeight = 0.0;
- Set<String> missingDescriptors = new TreeSet<String>();
+ Set<String> missingDescriptors = new TreeSet<>();
StringBuilder sb = new StringBuilder("Missing referenced "
+ "descriptors:");
for (Reference reference : this.references) {
diff --git a/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorDownloader.java b/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorDownloader.java
index df1b367..685f2bb 100644
--- a/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorDownloader.java
+++ b/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorDownloader.java
@@ -337,9 +337,9 @@ public class RelayDescriptorDownloader {
/* Read list of missing descriptors from disk and memorize those that
* we are interested in and that are likely to be found on the
* directory authorities. */
- this.missingDescriptors = new TreeMap<String, String>();
- this.microdescriptorKeys = new HashMap<String, Set<String>>();
- this.missingMicrodescriptors = new HashSet<String>();
+ this.missingDescriptors = new TreeMap<>();
+ this.microdescriptorKeys = new HashMap<>();
+ this.missingMicrodescriptors = new HashSet<>();
this.missingDescriptorsFile = new File(
"stats/missing-relay-descriptors");
if (this.missingDescriptorsFile.exists()) {
@@ -413,7 +413,7 @@ public class RelayDescriptorDownloader {
/* Read list of directory authorities and when we last downloaded all
* server and extra-info descriptors from them. */
- this.lastDownloadedAllDescriptors = new HashMap<String, String>();
+ this.lastDownloadedAllDescriptors = new HashMap<>();
this.lastDownloadedAllDescriptorsFile = new File(
"stats/last-downloaded-all-descriptors");
if (this.lastDownloadedAllDescriptorsFile.exists()) {
@@ -451,7 +451,7 @@ public class RelayDescriptorDownloader {
/* Make a list of at most two directory authorities that we want to
* download all server and extra-info descriptors from. */
- this.downloadAllDescriptorsFromAuthorities = new HashSet<String>();
+ this.downloadAllDescriptorsFromAuthorities = new HashSet<>();
for (String authority : this.authorities) {
if (!this.lastDownloadedAllDescriptors.containsKey(authority)
|| this.lastDownloadedAllDescriptors.get(authority).compareTo(
@@ -464,7 +464,7 @@ public class RelayDescriptorDownloader {
}
/* Prepare statistics on this execution. */
- this.requestsByAuthority = new HashMap<String, Integer>();
+ this.requestsByAuthority = new HashMap<>();
for (String authority : this.authorities) {
this.requestsByAuthority.put(authority, 0);
}
@@ -720,7 +720,7 @@ public class RelayDescriptorDownloader {
/* Next, try to download current votes that we're missing. */
if (downloadCurrentVotes) {
String voteKeyPrefix = "vote," + this.currentValidAfter;
- SortedSet<String> fingerprints = new TreeSet<String>();
+ SortedSet<String> fingerprints = new TreeSet<>();
for (Map.Entry<String, String> e :
this.missingDescriptors.entrySet()) {
if (e.getValue().equals("NA")
@@ -775,8 +775,7 @@ public class RelayDescriptorDownloader {
* and combine the descriptor identifiers to a URL of up to
* 96 server or extra-info descriptors or 92 microdescriptors
* that we can download at once. */
- SortedSet<String> descriptorIdentifiers =
- new TreeSet<String>();
+ SortedSet<String> descriptorIdentifiers = new TreeSet<>();
for (Map.Entry<String, String> e :
this.missingDescriptors.entrySet()) {
if (e.getValue().equals("NA")
diff --git a/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorParser.java b/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorParser.java
index d71e1f8..7f4ab29 100644
--- a/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorParser.java
+++ b/src/main/java/org/torproject/collector/relaydescs/RelayDescriptorParser.java
@@ -101,11 +101,11 @@ public class RelayDescriptorParser {
String dirSource = null;
long validAfter = -1L;
long dirKeyPublished = -1L;
- SortedSet<String> dirSources = new TreeSet<String>();
- SortedSet<String> serverDescriptors = new TreeSet<String>();
- SortedSet<String> serverDescriptorDigests = new TreeSet<String>();
- SortedSet<String> microdescriptorKeys = new TreeSet<String>();
- SortedSet<String> microdescriptorDigests = new TreeSet<String>();
+ SortedSet<String> dirSources = new TreeSet<>();
+ SortedSet<String> serverDescriptors = new TreeSet<>();
+ SortedSet<String> serverDescriptorDigests = new TreeSet<>();
+ SortedSet<String> microdescriptorKeys = new TreeSet<>();
+ SortedSet<String> microdescriptorDigests = new TreeSet<>();
StringBuilder certificateStringBuilder = null;
String certificateString = null;
String lastRelayIdentity = null;
diff --git a/src/main/java/org/torproject/collector/torperf/TorperfDownloader.java b/src/main/java/org/torproject/collector/torperf/TorperfDownloader.java
index 66f6e84..b09a6d6 100644
--- a/src/main/java/org/torproject/collector/torperf/TorperfDownloader.java
+++ b/src/main/java/org/torproject/collector/torperf/TorperfDownloader.java
@@ -84,8 +84,7 @@ public class TorperfDownloader extends CollecTorMain {
this.cleanUpRsyncDirectory();
}
- SortedMap<String, String> lastMergedTimestamps =
- new TreeMap<String, String>();
+ SortedMap<String, String> lastMergedTimestamps = new TreeMap<>();
private void readLastMergedTimestamps() {
if (!this.torperfLastMergedFile.exists()) {
@@ -408,8 +407,7 @@ public class TorperfDownloader extends CollecTorMain {
}
/* Write output line to .tpf file. */
- SortedMap<String, String> keysAndValues =
- new TreeMap<String, String>();
+ SortedMap<String, String> keysAndValues = new TreeMap<>();
keysAndValues.put("SOURCE", source);
keysAndValues.put("FILESIZE", String.valueOf(fileSize));
if (extradata != null) {
@@ -450,7 +448,7 @@ public class TorperfDownloader extends CollecTorMain {
return null;
}
if (this.dataTimestamps == null) {
- this.dataTimestamps = new TreeMap<Integer, String>();
+ this.dataTimestamps = new TreeMap<>();
this.dataTimestamps.put(0, "START");
this.dataTimestamps.put(2, "SOCKET");
this.dataTimestamps.put(4, "CONNECT");
@@ -470,7 +468,7 @@ public class TorperfDownloader extends CollecTorMain {
this.dataTimestamps.put(35, "DATAPERC80");
this.dataTimestamps.put(37, "DATAPERC90");
}
- SortedMap<String, String> data = new TreeMap<String, String>();
+ SortedMap<String, String> data = new TreeMap<>();
try {
for (Map.Entry<Integer, String> e : this.dataTimestamps.entrySet()) {
int intKey = e.getKey();
@@ -494,7 +492,7 @@ public class TorperfDownloader extends CollecTorMain {
private SortedMap<String, String> parseExtradataLine(String line) {
String[] parts = line.split(" ");
- SortedMap<String, String> extradata = new TreeMap<String, String>();
+ SortedMap<String, String> extradata = new TreeMap<>();
String previousKey = null;
for (String part : parts) {
String[] keyAndValue = part.split("=", -1);
@@ -564,7 +562,7 @@ public class TorperfDownloader extends CollecTorMain {
private void readTpfLinesToCache(String source, int fileSize,
String startDate) throws IOException {
- this.cachedTpfLines = new TreeMap<String, String>();
+ this.cachedTpfLines = new TreeMap<>();
this.cachedSource = source;
this.cachedFileSize = fileSize;
this.cachedStartDate = startDate;
@@ -624,7 +622,7 @@ public class TorperfDownloader extends CollecTorMain {
public void cleanUpRsyncDirectory() throws ConfigurationException {
long cutOffMillis = System.currentTimeMillis()
- 3L * 24L * 60L * 60L * 1000L;
- Stack<File> allFiles = new Stack<File>();
+ Stack<File> allFiles = new Stack<>();
allFiles.add(new File(config.getPath(Key.RecentPath).toFile(), TORPERF));
while (!allFiles.isEmpty()) {
File file = allFiles.pop();
1
0
commit 3d5bfbf738b587016069cb6e3a42afb71f595159
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Feb 24 09:59:47 2017 +0100
Update to metrics-lib 1.6.0.
---
build.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build.xml b/build.xml
index 2dc6c03..7b8bc42 100644
--- a/build.xml
+++ b/build.xml
@@ -11,7 +11,7 @@
<property name="release.version" value="1.1.2-dev" />
<property name="project-main-class" value="org.torproject.collector.Main" />
<property name="name" value="collector"/>
- <property name="descriptorversion" value="1.5.0" />
+ <property name="descriptorversion" value="1.6.0" />
<property name="jarincludes" value="collector.properties logback.xml" />
<patternset id="runtime" >
1
0
[metrics-web/master] Use Java 7's diamond operator wherever possible.
by karsten@torproject.org 24 Feb '17
by karsten@torproject.org 24 Feb '17
24 Feb '17
commit 4065d3a792b7954ee3d43a5ef52ee4d104c8df9c
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Thu Feb 23 14:22:37 2017 +0100
Use Java 7's diamond operator wherever possible.
As part of this, set Java source and target version to 7 in two build
files and add a missing library for running tests.
Implements #21535.
---
.../src/org/torproject/metrics/advbwdist/Main.java | 7 ++--
.../src/org/torproject/metrics/clients/Main.java | 6 ++--
modules/connbidirect/build.xml | 9 ++---
.../org/torproject/metrics/connbidirect/Main.java | 17 ++++-----
.../torproject/metrics/connbidirect/MainTest.java | 35 ++++++++-----------
.../org/torproject/metrics/hidserv/Aggregator.java | 6 ++--
.../torproject/metrics/hidserv/DateTimeHelper.java | 2 +-
.../torproject/metrics/hidserv/DocumentStore.java | 5 ++-
.../torproject/metrics/hidserv/Extrapolator.java | 14 ++++----
.../src/org/torproject/metrics/hidserv/Main.java | 11 +++---
.../src/org/torproject/metrics/hidserv/Parser.java | 20 ++++-------
.../org/torproject/metrics/hidserv/Simulate.java | 40 ++++++++++------------
.../org/torproject/ernie/cron/Configuration.java | 3 +-
.../cron/RelayDescriptorDatabaseImporter.java | 10 +++---
.../cron/network/ConsensusStatsFileHandler.java | 11 +++---
.../ernie/cron/performance/TorperfProcessor.java | 14 ++++----
.../java/org/torproject/metrics/webstats/Main.java | 2 +-
website/build.xml | 4 +--
.../src/org/torproject/metrics/web/AnyServlet.java | 2 +-
.../torproject/metrics/web/ContentProvider.java | 6 ++--
.../org/torproject/metrics/web/GraphServlet.java | 7 ++--
.../org/torproject/metrics/web/LinkServlet.java | 2 +-
.../org/torproject/metrics/web/MetricServlet.java | 25 +++++---------
.../org/torproject/metrics/web/NewsServlet.java | 9 +++--
.../org/torproject/metrics/web/TableServlet.java | 7 ++--
.../metrics/web/graphs/BubblesServlet.java | 2 +-
.../torproject/metrics/web/graphs/Countries.java | 2 +-
.../metrics/web/graphs/GraphParameterChecker.java | 9 +++--
.../metrics/web/graphs/RObjectGenerator.java | 13 ++++---
.../metrics/web/graphs/TableParameterChecker.java | 7 ++--
.../metrics/web/research/ResearchStatsServlet.java | 2 +-
31 files changed, 132 insertions(+), 177 deletions(-)
diff --git a/modules/advbwdist/src/org/torproject/metrics/advbwdist/Main.java b/modules/advbwdist/src/org/torproject/metrics/advbwdist/Main.java
index 83c4934..7d7678d 100644
--- a/modules/advbwdist/src/org/torproject/metrics/advbwdist/Main.java
+++ b/modules/advbwdist/src/org/torproject/metrics/advbwdist/Main.java
@@ -38,8 +38,7 @@ public class Main {
+ "server-descriptors"));
Iterator<DescriptorFile> descriptorFiles =
descriptorReader.readDescriptors();
- Map<String, Long> serverDescriptors =
- new HashMap<String, Long>();
+ Map<String, Long> serverDescriptors = new HashMap<>();
while (descriptorFiles.hasNext()) {
DescriptorFile descriptorFile = descriptorFiles.next();
for (Descriptor descriptor : descriptorFile.getDescriptors()) {
@@ -87,8 +86,8 @@ public class Main {
(RelayNetworkStatusConsensus) descriptor;
String validAfter = dateTimeFormat.format(
consensus.getValidAfterMillis());
- List<Long> advertisedBandwidthsAllRelays = new ArrayList<Long>();
- List<Long> advertisedBandwidthsExitsOnly = new ArrayList<Long>();
+ List<Long> advertisedBandwidthsAllRelays = new ArrayList<>();
+ List<Long> advertisedBandwidthsExitsOnly = new ArrayList<>();
for (NetworkStatusEntry relay
: consensus.getStatusEntries().values()) {
if (!relay.getFlags().contains("Running")) {
diff --git a/modules/clients/src/org/torproject/metrics/clients/Main.java b/modules/clients/src/org/torproject/metrics/clients/Main.java
index c9dc004..dff73f7 100644
--- a/modules/clients/src/org/torproject/metrics/clients/Main.java
+++ b/modules/clients/src/org/torproject/metrics/clients/Main.java
@@ -297,8 +297,7 @@ public class Main {
SortedMap<String, Integer> frequencies, long publishedMillis)
throws IOException {
double total = 0.0;
- SortedMap<String, Double> frequenciesCopy =
- new TreeMap<String, Double>();
+ SortedMap<String, Double> frequenciesCopy = new TreeMap<>();
if (frequencies != null) {
for (Map.Entry<String, Integer> e : frequencies.entrySet()) {
if (e.getValue() < 4.0) {
@@ -399,8 +398,7 @@ public class Main {
}
}
- private static Map<String, BufferedWriter> openOutputFiles =
- new HashMap<String, BufferedWriter>();
+ private static Map<String, BufferedWriter> openOutputFiles = new HashMap<>();
private static void writeOutputLine(String fingerprint, String node,
String metric, String country, String transport, String version,
diff --git a/modules/connbidirect/build.xml b/modules/connbidirect/build.xml
index 9aaf2e1..72c028f 100644
--- a/modules/connbidirect/build.xml
+++ b/modules/connbidirect/build.xml
@@ -11,6 +11,7 @@
<include name="commons-compress-1.9.jar"/>
<include name="commons-lang-2.6.jar"/>
<include name="junit4-4.11.jar"/>
+ <include name="hamcrest-all-1.3.jar"/>
<include name="descriptor-1.4.0.jar"/>
<include name="slf4j-api-1.7.7.jar"/>
<include name="logback-core-1.1.2.jar"/>
@@ -22,8 +23,8 @@
<mkdir dir="${connbidirect-classes}"/>
<javac destdir="${connbidirect-classes}"
srcdir="${connbidirect-sources}"
- source="1.6"
- target="1.6"
+ source="1.7"
+ target="1.7"
debug="true"
deprecation="true"
optimize="false"
@@ -36,8 +37,8 @@
<target name="test" depends="compile">
<javac destdir="${connbidirect-classes}"
srcdir="${connbidirect-tests}"
- source="1.6"
- target="1.6"
+ source="1.7"
+ target="1.7"
debug="true"
deprecation="true"
optimize="false"
diff --git a/modules/connbidirect/src/main/java/org/torproject/metrics/connbidirect/Main.java b/modules/connbidirect/src/main/java/org/torproject/metrics/connbidirect/Main.java
index db4c640..63dc6be 100644
--- a/modules/connbidirect/src/main/java/org/torproject/metrics/connbidirect/Main.java
+++ b/modules/connbidirect/src/main/java/org/torproject/metrics/connbidirect/Main.java
@@ -148,7 +148,7 @@ public class Main {
+ "raw statistics anymore.");
return;
}
- SortedSet<RawStat> newRawStats = new TreeSet<RawStat>();
+ SortedSet<RawStat> newRawStats = new TreeSet<>();
parseHistory = addRawStatsFromDescriptors(newRawStats,
descriptorsDirectories, parseHistory);
if (parseHistory == null) {
@@ -231,8 +231,7 @@ public class Main {
/* Parse a parse history. */
static SortedMap<String, Long> parseParseHistory(
String formattedParseHistory) {
- SortedMap<String, Long> parsedParseHistory =
- new TreeMap<String, Long>();
+ SortedMap<String, Long> parsedParseHistory = new TreeMap<>();
LineNumberReader lnr = new LineNumberReader(new StringReader(
formattedParseHistory));
String line = "";
@@ -279,8 +278,7 @@ public class Main {
/* Parse aggregate connbidirect stats. */
static SortedMap<String, Short> parseAggregateStats(
String formattedAggregatedStats) {
- SortedMap<String, Short> parsedAggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> parsedAggregateStats = new TreeMap<>();
if (formattedAggregatedStats.length() < 1) {
return parsedAggregateStats; /* Empty file. */
}
@@ -328,7 +326,7 @@ public class Main {
/* Parse raw statistics. */
static SortedSet<RawStat> parseRawStats(String formattedRawStats) {
- SortedSet<RawStat> parsedRawStats = new TreeSet<RawStat>();
+ SortedSet<RawStat> parsedRawStats = new TreeSet<>();
LineNumberReader lnr = new LineNumberReader(new StringReader(
formattedRawStats));
String line = "";
@@ -422,8 +420,8 @@ public class Main {
static SortedSet<Long> mergeRawStats(
SortedSet<RawStat> rawStats, SortedSet<RawStat> newRawStats) {
rawStats.addAll(newRawStats);
- SortedSet<Long> discardedRawStats = new TreeSet<Long>();
- SortedSet<Long> availableRawStats = new TreeSet<Long>();
+ SortedSet<Long> discardedRawStats = new TreeSet<>();
+ SortedSet<Long> availableRawStats = new TreeSet<>();
for (RawStat rawStat : rawStats) {
if (rawStat.fingerprint != null) {
availableRawStats.add(rawStat.dateDays);
@@ -440,8 +438,7 @@ public class Main {
SortedSet<RawStat> rawStats) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- SortedMap<String, List<Short>> fractionsByDateAndDirection =
- new TreeMap<String, List<Short>>();
+ SortedMap<String, List<Short>> fractionsByDateAndDirection = new TreeMap<>();
final String[] directions = new String[] { "read", "write", "both" };
for (RawStat rawStat : rawStats) {
if (rawStat.fingerprint != null) {
diff --git a/modules/connbidirect/src/test/java/org/torproject/metrics/connbidirect/MainTest.java b/modules/connbidirect/src/test/java/org/torproject/metrics/connbidirect/MainTest.java
index 92b6866..c63a772 100644
--- a/modules/connbidirect/src/test/java/org/torproject/metrics/connbidirect/MainTest.java
+++ b/modules/connbidirect/src/test/java/org/torproject/metrics/connbidirect/MainTest.java
@@ -43,14 +43,14 @@ public class MainTest {
@Test
public void testParseHistoryOneEntry() {
- SortedMap<String, Long> parseHistory = new TreeMap<String, Long>();
+ SortedMap<String, Long> parseHistory = new TreeMap<>();
parseHistory.put(pathA, lastmodA);
assertParseHistoryCanBeSerializedAndDeserialized(parseHistory);
}
@Test
public void testParseHistoryTwoEntries() {
- SortedMap<String, Long> parseHistory = new TreeMap<String, Long>();
+ SortedMap<String, Long> parseHistory = new TreeMap<>();
parseHistory.put(pathA, lastmodA);
parseHistory.put(pathB, lastmodB);
assertParseHistoryCanBeSerializedAndDeserialized(parseHistory);
@@ -95,16 +95,14 @@ public class MainTest {
@Test
public void testAggregateStatsOneEntry() {
- SortedMap<String, Short> aggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> aggregateStats = new TreeMap<>();
aggregateStats.put("2015-08-18,read,0.25", (short) 42);
assertAggregateStatsCanBeSerializedAndDeserialized(aggregateStats);
}
@Test
public void testAggregateStatsThreeEntries() {
- SortedMap<String, Short> aggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> aggregateStats = new TreeMap<>();
aggregateStats.put("2015-08-18,read,0.25", (short) 12);
aggregateStats.put("2015-08-18,read,0.5", (short) 24);
aggregateStats.put("2015-08-18,read,0.75", (short) 42);
@@ -138,7 +136,7 @@ public class MainTest {
@Test
public void testRawStatsOneEntry() {
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 40, (short) 30,
(short) 50));
assertRawStatsCanBeSerializedAndDeserialized(rawStats);
@@ -154,7 +152,7 @@ public class MainTest {
@Test
public void testMergeRawStatsAddNothing() {
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 40, (short) 30,
(short) 50));
assertRawStatsCanBeMerged(rawStats, new TreeSet<Main.RawStat>(),
@@ -163,10 +161,10 @@ public class MainTest {
@Test
public void testMergeRawStatsAddSame() {
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 40, (short) 30,
(short) 50));
- SortedSet<Main.RawStat> newRawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> newRawStats = new TreeSet<>();
newRawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 40,
(short) 30, (short) 50));
assertRawStatsCanBeMerged(rawStats, newRawStats, false);
@@ -174,10 +172,10 @@ public class MainTest {
@Test
public void testMergeRawStatsAddOther() {
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 40, (short) 30,
(short) 50));
- SortedSet<Main.RawStat> newRawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> newRawStats = new TreeSet<>();
newRawStats.add(new Main.RawStat(DATE_B, FPR_B, (short) 40,
(short) 30, (short) 50));
assertRawStatsCanBeMerged(rawStats, newRawStats, false);
@@ -216,8 +214,7 @@ public class MainTest {
private void assertStatsCanBeAggregated(
SortedMap<String, Short> expectedAggregateStats,
SortedSet<Main.RawStat> rawStats) {
- SortedMap<String, Short> updatedAggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> updatedAggregateStats = new TreeMap<>();
Main.updateAggregateStats(updatedAggregateStats, rawStats);
assertEquals("Updated aggregate statistics don't match",
expectedAggregateStats, updatedAggregateStats);
@@ -231,8 +228,7 @@ public class MainTest {
@Test
public void testUpdateAggregateStatsSingleRawStat() {
- SortedMap<String, Short> expectedAggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> expectedAggregateStats = new TreeMap<>();
expectedAggregateStats.put("2015-08-18,read,0.25", (short) 42);
expectedAggregateStats.put("2015-08-18,read,0.5", (short) 42);
expectedAggregateStats.put("2015-08-18,read,0.75", (short) 42);
@@ -242,7 +238,7 @@ public class MainTest {
expectedAggregateStats.put("2015-08-18,both,0.25", (short) 22);
expectedAggregateStats.put("2015-08-18,both,0.5", (short) 22);
expectedAggregateStats.put("2015-08-18,both,0.75", (short) 22);
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 42, (short) 32,
(short) 22));
assertStatsCanBeAggregated(expectedAggregateStats, rawStats);
@@ -250,8 +246,7 @@ public class MainTest {
@Test
public void testUpdateAggregateStatsTwoRawStat() {
- SortedMap<String, Short> expectedAggregateStats =
- new TreeMap<String, Short>();
+ SortedMap<String, Short> expectedAggregateStats = new TreeMap<>();
expectedAggregateStats.put("2015-08-18,read,0.25", (short) 32);
expectedAggregateStats.put("2015-08-18,read,0.5", (short) 42);
expectedAggregateStats.put("2015-08-18,read,0.75", (short) 42);
@@ -261,7 +256,7 @@ public class MainTest {
expectedAggregateStats.put("2015-08-18,both,0.25", (short) 12);
expectedAggregateStats.put("2015-08-18,both,0.5", (short) 22);
expectedAggregateStats.put("2015-08-18,both,0.75", (short) 22);
- SortedSet<Main.RawStat> rawStats = new TreeSet<Main.RawStat>();
+ SortedSet<Main.RawStat> rawStats = new TreeSet<>();
rawStats.add(new Main.RawStat(DATE_A, FPR_A, (short) 32, (short) 22,
(short) 12));
rawStats.add(new Main.RawStat(DATE_A, FPR_B, (short) 42, (short) 32,
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/Aggregator.java b/modules/hidserv/src/org/torproject/metrics/hidserv/Aggregator.java
index 677c2ca..ea09a78 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/Aggregator.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/Aggregator.java
@@ -70,10 +70,8 @@ public class Aggregator {
* dates, map values are double[] arrays with the extrapolated network
* total as first element and the corresponding computed network
* fraction as second element. */
- SortedMap<String, List<double[]>> extrapolatedCells =
- new TreeMap<String, List<double[]>>();
- SortedMap<String, List<double[]>> extrapolatedOnions =
- new TreeMap<String, List<double[]>>();
+ SortedMap<String, List<double[]>> extrapolatedCells = new TreeMap<>();
+ SortedMap<String, List<double[]>> extrapolatedOnions = new TreeMap<>();
for (ExtrapolatedHidServStats extrapolated : extrapolatedStats) {
String date = DateTimeHelper.format(
extrapolated.getStatsDateMillis(),
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/DateTimeHelper.java b/modules/hidserv/src/org/torproject/metrics/hidserv/DateTimeHelper.java
index d35fc9f..5be6800 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/DateTimeHelper.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/DateTimeHelper.java
@@ -47,7 +47,7 @@ public class DateTimeHelper {
}
protected Map<String, DateFormat> initialValue() {
- return new HashMap<String, DateFormat>();
+ return new HashMap<>();
}
public void remove() {
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/DocumentStore.java b/modules/hidserv/src/org/torproject/metrics/hidserv/DocumentStore.java
index ac05096..2670cf4 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/DocumentStore.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/DocumentStore.java
@@ -50,8 +50,7 @@ public class DocumentStore<T extends Document> {
retrievedDocuments.addAll(documentsToStore);
/* Serialize documents. */
- SortedMap<String, SortedSet<String>> formattedDocuments =
- new TreeMap<String, SortedSet<String>>();
+ SortedMap<String, SortedSet<String>> formattedDocuments = new TreeMap<>();
for (T retrieveDocument : retrievedDocuments) {
String[] formattedDocument = retrieveDocument.format();
if (!formattedDocuments.containsKey(formattedDocument[0])) {
@@ -110,7 +109,7 @@ public class DocumentStore<T extends Document> {
/* Check if the document file exists, and if not, return an empty set.
* This is not an error case. */
- Set<T> result = new HashSet<T>();
+ Set<T> result = new HashSet<>();
if (!documentFile.exists()) {
return result;
}
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/Extrapolator.java b/modules/hidserv/src/org/torproject/metrics/hidserv/Extrapolator.java
index 9dc7ba0..262720a 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/Extrapolator.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/Extrapolator.java
@@ -90,9 +90,8 @@ public class Extrapolator {
}
/* Re-arrange reported stats by fingerprint. */
- SortedMap<String, Set<ReportedHidServStats>>
- parsedStatsByFingerprint =
- new TreeMap<String, Set<ReportedHidServStats>>();
+ SortedMap<String, Set<ReportedHidServStats>> parsedStatsByFingerprint =
+ new TreeMap<>();
for (ReportedHidServStats stat : reportedStats) {
String fingerprint = stat.getFingerprint();
if (!parsedStatsByFingerprint.containsKey(fingerprint)) {
@@ -111,9 +110,8 @@ public class Extrapolator {
* those that still need to be extrapolated. Also make a list of
* all dates for which we need to retrieve computed network
* fractions. */
- Set<ReportedHidServStats> newReportedStats =
- new HashSet<ReportedHidServStats>();
- SortedSet<String> retrieveFractionDates = new TreeSet<String>();
+ Set<ReportedHidServStats> newReportedStats = new HashSet<>();
+ SortedSet<String> retrieveFractionDates = new TreeSet<>();
for (ReportedHidServStats stats : e.getValue()) {
/* Check whether extrapolated stats already contain an object with
@@ -149,9 +147,9 @@ public class Extrapolator {
* because we need to count known consensuses even if the relay was
* not contained in a consensus or had a network fraction of exactly
* zero.) */
- SortedSet<Long> knownConsensuses = new TreeSet<Long>();
+ SortedSet<Long> knownConsensuses = new TreeSet<>();
SortedMap<Long, ComputedNetworkFractions> computedNetworkFractions =
- new TreeMap<Long, ComputedNetworkFractions>();
+ new TreeMap<>();
for (String date : retrieveFractionDates) {
File documentFile = new File(
this.computedNetworkFractionsDirectory, date);
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/Main.java b/modules/hidserv/src/org/torproject/metrics/hidserv/Main.java
index b729c51..ad0b415 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/Main.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/Main.java
@@ -19,7 +19,7 @@ public class Main {
public static void main(String[] args) {
/* Initialize directories and file paths. */
- Set<File> inDirectories = new HashSet<File>();
+ Set<File> inDirectories = new HashSet<>();
inDirectories.add(
new File("../../shared/in/recent/relay-descriptors/consensuses"));
inDirectories.add(
@@ -31,11 +31,9 @@ public class Main {
System.out.println("Initializing parser and reading parse "
+ "history...");
DocumentStore<ReportedHidServStats> reportedHidServStatsStore =
- new DocumentStore<ReportedHidServStats>(
- ReportedHidServStats.class);
+ new DocumentStore<>(ReportedHidServStats.class);
DocumentStore<ComputedNetworkFractions>
- computedNetworkFractionsStore =
- new DocumentStore<ComputedNetworkFractions>(
+ computedNetworkFractionsStore = new DocumentStore<>(
ComputedNetworkFractions.class);
Parser parser = new Parser(inDirectories, statusDirectory,
reportedHidServStatsStore, computedNetworkFractionsStore);
@@ -63,8 +61,7 @@ public class Main {
* single relays. */
System.out.println("Extrapolating statistics...");
DocumentStore<ExtrapolatedHidServStats> extrapolatedHidServStatsStore
- = new DocumentStore<ExtrapolatedHidServStats>(
- ExtrapolatedHidServStats.class);
+ = new DocumentStore<>(ExtrapolatedHidServStats.class);
Extrapolator extrapolator = new Extrapolator(statusDirectory,
reportedHidServStatsStore, computedNetworkFractionsStore,
extrapolatedHidServStatsStore);
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/Parser.java b/modules/hidserv/src/org/torproject/metrics/hidserv/Parser.java
index 24746ed..eccb0c0 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/Parser.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/Parser.java
@@ -96,8 +96,7 @@ public class Parser {
public void readParseHistory() {
if (this.parseHistoryFile.exists()
&& this.parseHistoryFile.isFile()) {
- SortedMap<String, Long> excludedFiles =
- new TreeMap<String, Long>();
+ SortedMap<String, Long> excludedFiles = new TreeMap<>();
try {
BufferedReader br = new BufferedReader(new FileReader(
this.parseHistoryFile));
@@ -133,8 +132,7 @@ public class Parser {
/* Obtain the list of descriptor files that were either parsed now or
* that were skipped in this execution from the descriptor reader. */
- SortedMap<String, Long> excludedAndParsedFiles =
- new TreeMap<String, Long>();
+ SortedMap<String, Long> excludedAndParsedFiles = new TreeMap<>();
excludedAndParsedFiles.putAll(
this.descriptorReader.getExcludedFiles());
excludedAndParsedFiles.putAll(this.descriptorReader.getParsedFiles());
@@ -164,8 +162,7 @@ public class Parser {
* <p>To date, these objects are small, and keeping them all in memory
* is easy. But if this ever changes, e.g., when more and more
* statistics are added, this may not scale.</p> */
- private Set<ReportedHidServStats> reportedHidServStats =
- new HashSet<ReportedHidServStats>();
+ private Set<ReportedHidServStats> reportedHidServStats = new HashSet<>();
/** Instructs the descriptor reader to parse descriptor files, and
* handles the resulting parsed descriptors if they are either
@@ -297,14 +294,12 @@ public class Parser {
* directories, in reverse order, so that we can later determine the
* fingerprint distance between a directory and the directory
* preceding it by three positions in the descriptor ring. */
- SortedSet<String> hsDirs = new TreeSet<String>(
- Collections.reverseOrder());
+ SortedSet<String> hsDirs = new TreeSet<>(Collections.reverseOrder());
/* Prepare for computing the weights of all relays with the Fast flag
* for being selected in the middle position. */
double totalWeightsRendezvousPoint = 0.0;
- SortedMap<String, Double> weightsRendezvousPoint =
- new TreeMap<String, Double>();
+ SortedMap<String, Double> weightsRendezvousPoint = new TreeMap<>();
/* Go through all status entries contained in the consensus. */
for (Map.Entry<String, NetworkStatusEntry> e
@@ -343,8 +338,7 @@ public class Parser {
/* Store all computed network fractions based on this consensus in a
* set, which will then be written to disk in a single store
* operation. */
- Set<ComputedNetworkFractions> computedNetworkFractions =
- new HashSet<ComputedNetworkFractions>();
+ Set<ComputedNetworkFractions> computedNetworkFractions = new HashSet<>();
/* Remove all previously added directory fingerprints and re-add them
* twice, once with a leading "0" and once with a leading "1". The
@@ -352,7 +346,7 @@ public class Parser {
* the previous one, even if that would mean traversing the ring
* start. For example, the fingerprint preceding "1""00..0000" with
* the first "1" being added here could be "0""FF..FFFF". */
- SortedSet<String> hsDirsCopy = new TreeSet<String>(hsDirs);
+ SortedSet<String> hsDirsCopy = new TreeSet<>(hsDirs);
hsDirs.clear();
for (String fingerprint : hsDirsCopy) {
hsDirs.add("0" + fingerprint);
diff --git a/modules/hidserv/src/org/torproject/metrics/hidserv/Simulate.java b/modules/hidserv/src/org/torproject/metrics/hidserv/Simulate.java
index ab6389d..207b4aa 100644
--- a/modules/hidserv/src/org/torproject/metrics/hidserv/Simulate.java
+++ b/modules/hidserv/src/org/torproject/metrics/hidserv/Simulate.java
@@ -130,14 +130,13 @@ public class Simulate {
double[] fractions = new double[] { 0.01, 0.02, 0.03, 0.04, 0.05, 0.1,
0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.99 };
for (double fraction : fractions) {
- SortedSet<Integer> nonReportingRelays = new TreeSet<Integer>();
+ SortedSet<Integer> nonReportingRelays = new TreeSet<>();
for (int j = 0; j < numberRendPoints; j++) {
nonReportingRelays.add(j);
}
- List<Integer> shuffledRelays = new ArrayList<Integer>(
- nonReportingRelays);
+ List<Integer> shuffledRelays = new ArrayList<>(nonReportingRelays);
Collections.shuffle(shuffledRelays);
- SortedSet<Integer> reportingRelays = new TreeSet<Integer>();
+ SortedSet<Integer> reportingRelays = new TreeSet<>();
for (int j = 0; j < (int) ((double) numberRendPoints * fraction);
j++) {
reportingRelays.add(shuffledRelays.get(j));
@@ -146,7 +145,7 @@ public class Simulate {
List<double[]> singleRelayExtrapolations;
double totalReportingProbability;
do {
- singleRelayExtrapolations = new ArrayList<double[]>();
+ singleRelayExtrapolations = new ArrayList<>();
totalReportingProbability = 0.0;
for (int reportingRelay : reportingRelays) {
double probability = probRendPoint[reportingRelay];
@@ -160,12 +159,12 @@ public class Simulate {
totalReportingProbability += probability;
}
if (totalReportingProbability < fraction - 0.001) {
- int addRelay = new ArrayList<Integer>(nonReportingRelays).get(
+ int addRelay = new ArrayList<>(nonReportingRelays).get(
rnd.nextInt(nonReportingRelays.size()));
nonReportingRelays.remove(addRelay);
reportingRelays.add(addRelay);
} else if (totalReportingProbability > fraction + 0.001) {
- int removeRelay = new ArrayList<Integer>(reportingRelays).get(
+ int removeRelay = new ArrayList<>(reportingRelays).get(
rnd.nextInt(reportingRelays.size()));
reportingRelays.remove(removeRelay);
nonReportingRelays.add(removeRelay);
@@ -208,20 +207,19 @@ public class Simulate {
/* Generate 3000 HSDirs with "fingerprints" between 0.0 and 1.0. */
final int numberHsDirs = 3000;
- SortedSet<Double> hsDirFingerprints = new TreeSet<Double>();
+ SortedSet<Double> hsDirFingerprints = new TreeSet<>();
for (int i = 0; i < numberHsDirs; i++) {
hsDirFingerprints.add(rnd.nextDouble());
}
/* Compute fractions of observed descriptor space. */
SortedSet<Double> ring =
- new TreeSet<Double>(Collections.reverseOrder());
+ new TreeSet<>(Collections.reverseOrder());
for (double fingerprint : hsDirFingerprints) {
ring.add(fingerprint);
ring.add(fingerprint - 1.0);
}
- SortedMap<Double, Double> hsDirFractions =
- new TreeMap<Double, Double>();
+ SortedMap<Double, Double> hsDirFractions = new TreeMap<>();
for (double fingerprint : hsDirFingerprints) {
double start = fingerprint;
int positionsToGo = 3;
@@ -238,8 +236,7 @@ public class Simulate {
final int numberOnions = 40000;
final int replicas = 4;
final int storeOnDirs = 3;
- SortedMap<Double, SortedSet<Integer>> storedDescs =
- new TreeMap<Double, SortedSet<Integer>>();
+ SortedMap<Double, SortedSet<Integer>> storedDescs = new TreeMap<>();
for (double fingerprint : hsDirFingerprints) {
storedDescs.put(fingerprint, new TreeSet<Integer>());
}
@@ -268,9 +265,8 @@ public class Simulate {
* to remove noise again. */
final long binSize = 8L;
final double b = 8.0 / 0.3;
- SortedMap<Double, Long> reportedOnions = new TreeMap<Double, Long>();
- SortedMap<Double, Long> removedNoiseOnions =
- new TreeMap<Double, Long>();
+ SortedMap<Double, Long> reportedOnions = new TreeMap<>();
+ SortedMap<Double, Long> removedNoiseOnions = new TreeMap<>();
for (Map.Entry<Double, SortedSet<Integer>> e
: storedDescs.entrySet()) {
double fingerprint = e.getKey();
@@ -295,11 +291,11 @@ public class Simulate {
0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.99 };
for (double fraction : fractions) {
SortedSet<Double> nonReportingRelays =
- new TreeSet<Double>(hsDirFractions.keySet());
- List<Double> shuffledRelays = new ArrayList<Double>(
+ new TreeSet<>(hsDirFractions.keySet());
+ List<Double> shuffledRelays = new ArrayList<>(
nonReportingRelays);
Collections.shuffle(shuffledRelays);
- SortedSet<Double> reportingRelays = new TreeSet<Double>();
+ SortedSet<Double> reportingRelays = new TreeSet<>();
for (int j = 0; j < (int) ((double) hsDirFractions.size()
* fraction); j++) {
reportingRelays.add(shuffledRelays.get(j));
@@ -308,7 +304,7 @@ public class Simulate {
List<double[]> singleRelayExtrapolations;
double totalReportingProbability;
do {
- singleRelayExtrapolations = new ArrayList<double[]>();
+ singleRelayExtrapolations = new ArrayList<>();
totalReportingProbability = 0.0;
for (double reportingRelay : reportingRelays) {
double probability = hsDirFractions.get(reportingRelay) / 3.0;
@@ -322,13 +318,13 @@ public class Simulate {
}
if (totalReportingProbability < fraction - 0.001) {
double addRelay =
- new ArrayList<Double>(nonReportingRelays).get(
+ new ArrayList<>(nonReportingRelays).get(
rnd.nextInt(nonReportingRelays.size()));
nonReportingRelays.remove(addRelay);
reportingRelays.add(addRelay);
} else if (totalReportingProbability > fraction + 0.001) {
double removeRelay =
- new ArrayList<Double>(reportingRelays).get(
+ new ArrayList<>(reportingRelays).get(
rnd.nextInt(reportingRelays.size()));
reportingRelays.remove(removeRelay);
nonReportingRelays.add(removeRelay);
diff --git a/modules/legacy/src/org/torproject/ernie/cron/Configuration.java b/modules/legacy/src/org/torproject/ernie/cron/Configuration.java
index d0e0d20..e0d753f 100644
--- a/modules/legacy/src/org/torproject/ernie/cron/Configuration.java
+++ b/modules/legacy/src/org/torproject/ernie/cron/Configuration.java
@@ -23,8 +23,7 @@ public class Configuration {
private boolean importDirectoryArchives = false;
- private List<String> directoryArchivesDirectories =
- new ArrayList<String>();
+ private List<String> directoryArchivesDirectories = new ArrayList<>();
private boolean keepDirectoryArchiveImportHistory = false;
diff --git a/modules/legacy/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java b/modules/legacy/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
index aa1749e..97a330e 100644
--- a/modules/legacy/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
+++ b/modules/legacy/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
@@ -176,7 +176,7 @@ public final class RelayDescriptorDatabaseImporter {
* Set of fingerprints that we imported for the valid-after time in
* <code>lastCheckedStatusEntries</code>.
*/
- private Set<String> insertedStatusEntries = new HashSet<String>();
+ private Set<String> insertedStatusEntries = new HashSet<>();
private boolean importIntoDatabase;
@@ -242,7 +242,7 @@ public final class RelayDescriptorDatabaseImporter {
+ "(validafter) VALUES (?)");
this.psU = conn.prepareStatement("INSERT INTO scheduled_updates "
+ "(date) VALUES (?)");
- this.scheduledUpdates = new HashSet<Long>();
+ this.scheduledUpdates = new HashSet<>();
this.importIntoDatabase = true;
} catch (SQLException e) {
this.logger.log(Level.WARNING, "Could not connect to database or "
@@ -576,7 +576,7 @@ public final class RelayDescriptorDatabaseImporter {
/* Split history lines by date and rewrite them so that the date
* comes first. */
- SortedSet<String> historyLinesByDate = new TreeSet<String>();
+ SortedSet<String> historyLinesByDate = new TreeSet<>();
for (String bandwidthHistoryString : bandwidthHistoryStrings) {
String[] parts = bandwidthHistoryString.split(" ");
if (parts.length != 6) {
@@ -641,7 +641,7 @@ public final class RelayDescriptorDatabaseImporter {
}
long currentIntervalEnd = intervalEnd;
StringBuilder sb = new StringBuilder();
- SortedSet<String> newHistoryLines = new TreeSet<String>();
+ SortedSet<String> newHistoryLines = new TreeSet<>();
try {
for (int i = values.length - 1; i >= -1; i--) {
if (i == -1 || currentIntervalEnd < dateStart) {
@@ -898,7 +898,7 @@ public final class RelayDescriptorDatabaseImporter {
}
private void addExtraInfoDescriptor(ExtraInfoDescriptor descriptor) {
- List<String> bandwidthHistoryLines = new ArrayList<String>();
+ List<String> bandwidthHistoryLines = new ArrayList<>();
if (descriptor.getWriteHistory() != null) {
bandwidthHistoryLines.add(descriptor.getWriteHistory().getLine());
}
diff --git a/modules/legacy/src/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java b/modules/legacy/src/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java
index 9c0c01e..aa9469e 100644
--- a/modules/legacy/src/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java
+++ b/modules/legacy/src/org/torproject/ernie/cron/network/ConsensusStatsFileHandler.java
@@ -102,8 +102,8 @@ public class ConsensusStatsFileHandler {
/* Initialize local data structures to hold intermediate and final
* results. */
- this.bridgesPerDay = new TreeMap<String, String>();
- this.bridgesRaw = new TreeMap<String, String>();
+ this.bridgesPerDay = new TreeMap<>();
+ this.bridgesRaw = new TreeMap<>();
/* Initialize file names for intermediate and final results files. */
this.bridgeConsensusStatsRawFile = new File(
@@ -251,8 +251,7 @@ public class ConsensusStatsFileHandler {
/* Go through raw observations and put everything into nested maps by day
* and bridge authority. */
- Map<String, Map<String, int[]>> bridgesPerDayAndAuthority =
- new HashMap<String, Map<String, int[]>>();
+ Map<String, Map<String, int[]>> bridgesPerDayAndAuthority = new HashMap<>();
for (String bridgesRawLine : this.bridgesRaw.values()) {
String date = bridgesRawLine.substring(0, 10);
if (!bridgesPerDayAndAuthority.containsKey(date)) {
@@ -322,8 +321,8 @@ public class ConsensusStatsFileHandler {
/* Add average number of bridges per day to the database. */
if (connectionUrl != null) {
try {
- Map<String, String> insertRows = new HashMap<String, String>();
- Map<String, String> updateRows = new HashMap<String, String>();
+ Map<String, String> insertRows = new HashMap<>();
+ Map<String, String> updateRows = new HashMap<>();
insertRows.putAll(this.bridgesPerDay);
Connection conn = DriverManager.getConnection(connectionUrl);
conn.setAutoCommit(false);
diff --git a/modules/legacy/src/org/torproject/ernie/cron/performance/TorperfProcessor.java b/modules/legacy/src/org/torproject/ernie/cron/performance/TorperfProcessor.java
index b3bb2e3..2883299 100644
--- a/modules/legacy/src/org/torproject/ernie/cron/performance/TorperfProcessor.java
+++ b/modules/legacy/src/org/torproject/ernie/cron/performance/TorperfProcessor.java
@@ -40,8 +40,8 @@ public class TorperfProcessor {
Logger logger = Logger.getLogger(TorperfProcessor.class.getName());
File rawFile = new File(statsDirectory, "torperf-raw");
File statsFile = new File(statsDirectory, "torperf.csv");
- SortedMap<String, String> rawObs = new TreeMap<String, String>();
- SortedMap<String, String> stats = new TreeMap<String, String>();
+ SortedMap<String, String> rawObs = new TreeMap<>();
+ SortedMap<String, String> stats = new TreeMap<>();
int addedRawObs = 0;
SimpleDateFormat formatter =
new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss");
@@ -144,12 +144,10 @@ public class TorperfProcessor {
String tempSourceDate = null;
Iterator<Map.Entry<String, String>> it =
rawObs.entrySet().iterator();
- List<Long> dlTimes = new ArrayList<Long>();
+ List<Long> dlTimes = new ArrayList<>();
boolean haveWrittenFinalLine = false;
- SortedMap<String, List<Long>> dlTimesAllSources =
- new TreeMap<String, List<Long>>();
- SortedMap<String, long[]> statusesAllSources =
- new TreeMap<String, long[]>();
+ SortedMap<String, List<Long>> dlTimesAllSources = new TreeMap<>();
+ SortedMap<String, long[]> statusesAllSources = new TreeMap<>();
long failures = 0;
long timeouts = 0;
long requests = 0;
@@ -196,7 +194,7 @@ public class TorperfProcessor {
statusesAllSources.put(allDateSizeSource, status);
}
}
- dlTimes = new ArrayList<Long>();
+ dlTimes = new ArrayList<>();
failures = timeouts = requests = 0;
if (next == null) {
haveWrittenFinalLine = true;
diff --git a/modules/webstats/src/main/java/org/torproject/metrics/webstats/Main.java b/modules/webstats/src/main/java/org/torproject/metrics/webstats/Main.java
index 4c02a0f..7ba08d7 100644
--- a/modules/webstats/src/main/java/org/torproject/metrics/webstats/Main.java
+++ b/modules/webstats/src/main/java/org/torproject/metrics/webstats/Main.java
@@ -391,7 +391,7 @@ public class Main {
static void writeStatistics(Path webstatsPath,
SortedSet<String> statistics) throws IOException {
webstatsPath.toFile().getParentFile().mkdirs();
- List<String> lines = new ArrayList<String>();
+ List<String> lines = new ArrayList<>();
lines.add(ALL_COLUMNS);
lines.addAll(statistics);
log.info("Writing {} lines to {}.", lines.size(),
diff --git a/website/build.xml b/website/build.xml
index c3aca68..6204afe 100644
--- a/website/build.xml
+++ b/website/build.xml
@@ -7,8 +7,8 @@
<mkdir dir="classes"/>
<javac destdir="classes"
srcdir="src"
- source="1.5"
- target="1.5"
+ source="1.7"
+ target="1.7"
debug="true"
deprecation="true"
optimize="false"
diff --git a/website/src/org/torproject/metrics/web/AnyServlet.java b/website/src/org/torproject/metrics/web/AnyServlet.java
index 696a3be..3f2c073 100644
--- a/website/src/org/torproject/metrics/web/AnyServlet.java
+++ b/website/src/org/torproject/metrics/web/AnyServlet.java
@@ -14,7 +14,7 @@ public abstract class AnyServlet extends HttpServlet {
@Override
public void init() throws ServletException {
- List<String[]> categories = new ArrayList<String[]>();
+ List<String[]> categories = new ArrayList<>();
for (Category category :
ContentProvider.getInstance().getCategoriesList()) {
categories.add(new String[] {
diff --git a/website/src/org/torproject/metrics/web/ContentProvider.java b/website/src/org/torproject/metrics/web/ContentProvider.java
index 7dd9c46..f31c3d0 100644
--- a/website/src/org/torproject/metrics/web/ContentProvider.java
+++ b/website/src/org/torproject/metrics/web/ContentProvider.java
@@ -39,15 +39,15 @@ public class ContentProvider {
}
public List<Metric> getMetricsList() {
- return new ArrayList<Metric>(this.metricsList);
+ return new ArrayList<>(this.metricsList);
}
public List<Category> getCategoriesList() {
- return new ArrayList<Category>(this.categoriesList);
+ return new ArrayList<>(this.categoriesList);
}
public List<News> getNewsList() {
- return new ArrayList<News>(this.newsList);
+ return new ArrayList<>(this.newsList);
}
}
diff --git a/website/src/org/torproject/metrics/web/GraphServlet.java b/website/src/org/torproject/metrics/web/GraphServlet.java
index cc5edf1..0503195 100644
--- a/website/src/org/torproject/metrics/web/GraphServlet.java
+++ b/website/src/org/torproject/metrics/web/GraphServlet.java
@@ -25,8 +25,7 @@ import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class GraphServlet extends MetricServlet {
- private Map<String, String[][]> defaultParameters =
- new HashMap<String, String[][]>();
+ private Map<String, String[][]> defaultParameters = new HashMap<>();
@Override
public void init() throws ServletException {
@@ -141,7 +140,7 @@ public class GraphServlet extends MetricServlet {
Category category = this.categoriesById.get(requestedId);
request.setAttribute("categoryHeader", category.getHeader());
request.setAttribute("categoryDescription", category.getDescription());
- List<String[]> categoryTabs = new ArrayList<String[]>();
+ List<String[]> categoryTabs = new ArrayList<>();
for (String metricId : category.getMetrics()) {
categoryTabs.add(new String[] { this.titles.get(metricId), metricId });
}
@@ -190,7 +189,7 @@ public class GraphServlet extends MetricServlet {
Set<String> checked = null;
if (checkedParameters != null
&& checkedParameters.containsKey(parameter)) {
- checked = new HashSet<String>(Arrays.asList(
+ checked = new HashSet<>(Arrays.asList(
checkedParameters.get(parameter)));
}
String checkedOrSelected = parameter.equals("country")
diff --git a/website/src/org/torproject/metrics/web/LinkServlet.java b/website/src/org/torproject/metrics/web/LinkServlet.java
index 84b5da9..2319660 100644
--- a/website/src/org/torproject/metrics/web/LinkServlet.java
+++ b/website/src/org/torproject/metrics/web/LinkServlet.java
@@ -42,7 +42,7 @@ public class LinkServlet extends MetricServlet {
Category category = this.categoriesById.get(requestedId);
request.setAttribute("categoryHeader", category.getHeader());
request.setAttribute("categoryDescription", category.getDescription());
- List<String[]> categoryTabs = new ArrayList<String[]>();
+ List<String[]> categoryTabs = new ArrayList<>();
for (String metricId : category.getMetrics()) {
categoryTabs.add(new String[] { this.titles.get(metricId), metricId });
}
diff --git a/website/src/org/torproject/metrics/web/MetricServlet.java b/website/src/org/torproject/metrics/web/MetricServlet.java
index d2f2a7f..02dcd53 100644
--- a/website/src/org/torproject/metrics/web/MetricServlet.java
+++ b/website/src/org/torproject/metrics/web/MetricServlet.java
@@ -18,34 +18,27 @@ public abstract class MetricServlet extends AnyServlet {
protected List<Metric> metrics;
- protected Map<String, Set<String>> idsByType =
- new HashMap<String, Set<String>>();
+ protected Map<String, Set<String>> idsByType = new HashMap<>();
- protected Map<String, String> descriptions =
- new HashMap<String, String>();
+ protected Map<String, String> descriptions = new HashMap<>();
- protected Map<String, String> titles = new HashMap<String, String>();
+ protected Map<String, String> titles = new HashMap<>();
- protected Map<String, List<String>> parameters =
- new HashMap<String, List<String>>();
+ protected Map<String, List<String>> parameters = new HashMap<>();
- protected Map<String, String[]> tableHeaders =
- new HashMap<String, String[]>();
+ protected Map<String, String[]> tableHeaders = new HashMap<>();
- protected Map<String, String[]> tableCellFormats =
- new HashMap<String, String[]>();
+ protected Map<String, String[]> tableCellFormats = new HashMap<>();
- protected Map<String, String[]> data =
- new HashMap<String, String[]>();
+ protected Map<String, String[]> data = new HashMap<>();
- protected Map<String, Category> categoriesById =
- new HashMap<String, Category>();
+ protected Map<String, Category> categoriesById = new HashMap<>();
@Override
public void init() throws ServletException {
super.init();
this.metrics = ContentProvider.getInstance().getMetricsList();
- Map<String, String> allTypesAndTitles = new HashMap<String, String>();
+ Map<String, String> allTypesAndTitles = new HashMap<>();
for (Metric metric : this.metrics) {
String id = metric.getId();
String title = metric.getTitle();
diff --git a/website/src/org/torproject/metrics/web/NewsServlet.java b/website/src/org/torproject/metrics/web/NewsServlet.java
index cb1b93b..3df80d0 100644
--- a/website/src/org/torproject/metrics/web/NewsServlet.java
+++ b/website/src/org/torproject/metrics/web/NewsServlet.java
@@ -33,7 +33,7 @@ public class NewsServlet extends AnyServlet {
@Override
public void init() throws ServletException {
super.init();
- List<News> sortedNews = new ArrayList<News>();
+ List<News> sortedNews = new ArrayList<>();
for (News news : ContentProvider.getInstance().getNewsList()) {
if (news.getStart() != null) {
sortedNews.add(news);
@@ -45,7 +45,7 @@ public class NewsServlet extends AnyServlet {
}
});
this.sortedNews = sortedNews;
- SortedMap<String, String> countries = new TreeMap<String, String>();
+ SortedMap<String, String> countries = new TreeMap<>();
for (String[] country : Countries.getInstance().getCountryList()) {
countries.put(country[0], country[1]);
}
@@ -57,7 +57,7 @@ public class NewsServlet extends AnyServlet {
HttpServletResponse response) throws IOException, ServletException {
/* Create categories based on current system time. */
- Map<String, String[]> cutOffDates = new LinkedHashMap<String, String[]>();
+ Map<String, String[]> cutOffDates = new LinkedHashMap<>();
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.US);
cal.set(Calendar.DAY_OF_WEEK, 1);
cutOffDates.put(String.format("%tF", cal),
@@ -81,8 +81,7 @@ public class NewsServlet extends AnyServlet {
&& yearStart.compareTo(this.sortedNews.get(0).getStart()) > 0);
/* Sort news into categories. */
- Map<String[], List<String[]>> newsByCategory =
- new LinkedHashMap<String[], List<String[]>>();
+ Map<String[], List<String[]>> newsByCategory = new LinkedHashMap<>();
for (String[] category : cutOffDates.values()) {
newsByCategory.put(category, new ArrayList<String[]>());
}
diff --git a/website/src/org/torproject/metrics/web/TableServlet.java b/website/src/org/torproject/metrics/web/TableServlet.java
index 4e20704..d8ffbb1 100644
--- a/website/src/org/torproject/metrics/web/TableServlet.java
+++ b/website/src/org/torproject/metrics/web/TableServlet.java
@@ -55,7 +55,7 @@ public class TableServlet extends MetricServlet {
Category category = this.categoriesById.get(requestedId);
request.setAttribute("categoryHeader", category.getHeader());
request.setAttribute("categoryDescription", category.getDescription());
- List<String[]> categoryTabs = new ArrayList<String[]>();
+ List<String[]> categoryTabs = new ArrayList<>();
for (String metricId : category.getMetrics()) {
categoryTabs.add(new String[] { this.titles.get(metricId), metricId });
}
@@ -92,11 +92,10 @@ public class TableServlet extends MetricServlet {
}
List<Map<String, String>> tableData = objectGenerator
.generateTable(requestedId, request.getParameterMap(), true);
- List<List<String>> formattedTableData =
- new ArrayList<List<String>>();
+ List<List<String>> formattedTableData = new ArrayList<>();
String[] contents = this.tableCellFormats.get(requestedId);
for (Map<String, String> row : tableData) {
- List<String> formattedRow = new ArrayList<String>();
+ List<String> formattedRow = new ArrayList<>();
StrSubstitutor sub = new StrSubstitutor(row);
for (String con : contents) {
formattedRow.add(sub.replace(con));
diff --git a/website/src/org/torproject/metrics/web/graphs/BubblesServlet.java b/website/src/org/torproject/metrics/web/graphs/BubblesServlet.java
index 8f5749a..0348924 100644
--- a/website/src/org/torproject/metrics/web/graphs/BubblesServlet.java
+++ b/website/src/org/torproject/metrics/web/graphs/BubblesServlet.java
@@ -40,7 +40,7 @@ public class BubblesServlet extends MetricServlet {
Category category = this.categoriesById.get(requestedId);
request.setAttribute("categoryHeader", category.getHeader());
request.setAttribute("categoryDescription", category.getDescription());
- List<String[]> categoryTabs = new ArrayList<String[]>();
+ List<String[]> categoryTabs = new ArrayList<>();
for (String metricId : category.getMetrics()) {
categoryTabs.add(new String[] { this.titles.get(metricId), metricId });
}
diff --git a/website/src/org/torproject/metrics/web/graphs/Countries.java b/website/src/org/torproject/metrics/web/graphs/Countries.java
index 9355641..c10af45 100644
--- a/website/src/org/torproject/metrics/web/graphs/Countries.java
+++ b/website/src/org/torproject/metrics/web/graphs/Countries.java
@@ -19,7 +19,7 @@ public class Countries {
private List<String[]> knownCountries;
private Countries() {
- this.knownCountries = new ArrayList<String[]>();
+ this.knownCountries = new ArrayList<>();
this.knownCountries.add("af;Afghanistan".split(";"));
this.knownCountries.add("ax;Aland Islands".split(";"));
this.knownCountries.add("al;Albania".split(";"));
diff --git a/website/src/org/torproject/metrics/web/graphs/GraphParameterChecker.java b/website/src/org/torproject/metrics/web/graphs/GraphParameterChecker.java
index 580e914..0b39adb 100644
--- a/website/src/org/torproject/metrics/web/graphs/GraphParameterChecker.java
+++ b/website/src/org/torproject/metrics/web/graphs/GraphParameterChecker.java
@@ -49,13 +49,13 @@ public class GraphParameterChecker {
public GraphParameterChecker() {
this.dateFormat = new SimpleDateFormat("yyyy-MM-dd");
this.dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- this.availableGraphs = new HashMap<String, String[]>();
+ this.availableGraphs = new HashMap<>();
for (Metric metric : ContentProvider.getInstance().getMetricsList()) {
if ("Graph".equals(metric.getType())) {
this.availableGraphs.put(metric.getId(), metric.getParameters());
}
}
- this.knownParameterValues = new HashMap<String, String>();
+ this.knownParameterValues = new HashMap<>();
this.knownParameterValues.put("flag",
"Running,Exit,Guard,Fast,Stable,HSDir");
StringBuilder sb = new StringBuilder("all");
@@ -92,10 +92,9 @@ public class GraphParameterChecker {
/* Find out which other parameters are supported by this graph type
* and parse them if they are given. */
- Set<String> supportedGraphParameters = new HashSet<String>(
+ Set<String> supportedGraphParameters = new HashSet<>(
Arrays.asList(this.availableGraphs.get(graphType)));
- Map<String, String[]> recognizedGraphParameters =
- new HashMap<String, String[]>();
+ Map<String, String[]> recognizedGraphParameters = new HashMap<>();
/* Parse start and end dates if supported by the graph type. If no end
* date is provided, set it to today. If no start date is provided,
diff --git a/website/src/org/torproject/metrics/web/graphs/RObjectGenerator.java b/website/src/org/torproject/metrics/web/graphs/RObjectGenerator.java
index acdb146..aa6ab4f 100644
--- a/website/src/org/torproject/metrics/web/graphs/RObjectGenerator.java
+++ b/website/src/org/torproject/metrics/web/graphs/RObjectGenerator.java
@@ -57,8 +57,8 @@ public class RObjectGenerator implements ServletContextListener {
this.cachedGraphsDirectory = servletContext.getInitParameter(
"cachedGraphsDir");
- this.availableGraphs = new LinkedHashMap<String, Metric>();
- this.availableTables = new LinkedHashMap<String, Metric>();
+ this.availableGraphs = new LinkedHashMap<>();
+ this.availableTables = new LinkedHashMap<>();
for (Metric metric : ContentProvider.getInstance().getMetricsList()) {
String type = metric.getType();
String id = metric.getId();
@@ -216,19 +216,18 @@ public class RObjectGenerator implements ServletContextListener {
/* Write the table content to a map. */
List<Map<String, String>> result = null;
try {
- result = new ArrayList<Map<String, String>>();
+ result = new ArrayList<>();
BufferedReader br = new BufferedReader(new InputStreamReader(
new ByteArrayInputStream(tableBytes)));
String line = br.readLine();
if (line != null) {
- List<String> headers = new ArrayList<String>(Arrays.asList(
- line.split(",")));
+ List<String> headers = new ArrayList<>(Arrays.asList(line.split(",")));
while ((line = br.readLine()) != null) {
String[] parts = line.split(",");
if (headers.size() != parts.length) {
return null;
}
- Map<String, String> row = new HashMap<String, String>();
+ Map<String, String> row = new HashMap<>();
for (int i = 0; i < headers.size(); i++) {
row.put(headers.get(i), parts[i]);
}
@@ -273,7 +272,7 @@ public class RObjectGenerator implements ServletContextListener {
}
private Map<String, RObjectGeneratorWorker> objectGeneratorThreads =
- new HashMap<String, RObjectGeneratorWorker>();
+ new HashMap<>();
private class RObjectGeneratorWorker extends Thread {
diff --git a/website/src/org/torproject/metrics/web/graphs/TableParameterChecker.java b/website/src/org/torproject/metrics/web/graphs/TableParameterChecker.java
index fea04c8..eb13531 100644
--- a/website/src/org/torproject/metrics/web/graphs/TableParameterChecker.java
+++ b/website/src/org/torproject/metrics/web/graphs/TableParameterChecker.java
@@ -46,7 +46,7 @@ public class TableParameterChecker {
this.dateFormat = new SimpleDateFormat("yyyy-MM-dd");
this.dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- this.availableTables = new HashMap<String, String[]>();
+ this.availableTables = new HashMap<>();
for (Metric metric : ContentProvider.getInstance().getMetricsList()) {
if ("Table".equals(metric.getType())) {
this.availableTables.put(metric.getId(), metric.getParameters());
@@ -70,10 +70,9 @@ public class TableParameterChecker {
/* Find out which other parameters are supported by this table type
* and parse them if they are given. */
- Set<String> supportedTableParameters = new HashSet<String>(
+ Set<String> supportedTableParameters = new HashSet<>(
Arrays.asList(this.availableTables.get(tableType)));
- Map<String, String[]> recognizedTableParameters =
- new HashMap<String, String[]>();
+ Map<String, String[]> recognizedTableParameters = new HashMap<>();
/* Parse start and end dates if supported by the table type. If no end
* date is provided, set it to today. If no start date is provided,
diff --git a/website/src/org/torproject/metrics/web/research/ResearchStatsServlet.java b/website/src/org/torproject/metrics/web/research/ResearchStatsServlet.java
index 42be8f6..eaea36c 100644
--- a/website/src/org/torproject/metrics/web/research/ResearchStatsServlet.java
+++ b/website/src/org/torproject/metrics/web/research/ResearchStatsServlet.java
@@ -29,7 +29,7 @@ public class ResearchStatsServlet extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
this.statsDir = new File(config.getInitParameter("statsDir"));
- this.availableStatisticsFiles = new TreeSet<String>();
+ this.availableStatisticsFiles = new TreeSet<>();
this.availableStatisticsFiles.add("servers");
this.availableStatisticsFiles.add("bandwidth");
this.availableStatisticsFiles.add("clients");
1
0