[tor-commits] [metrics-web/release] Fix two issues found using metrics-test.

karsten at torproject.org karsten at torproject.org
Sat Nov 9 21:45:07 UTC 2019


commit 5d98d4806e01169f226bace3fc095298844d4427
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Mon Sep 16 16:29:10 2019 +0200

    Fix two issues found using metrics-test.
    
     - Make unit test locale-independent, similar to Onionoo's 860228c.
    
     - Replace deprecated method Class.newInstance().
---
 .../java/org/torproject/metrics/stats/hidserv/Aggregator.java  |  5 +++--
 .../metrics/stats/hidserv/ComputedNetworkFractions.java        |  5 +++--
 .../org/torproject/metrics/stats/hidserv/DocumentStore.java    |  6 ++++--
 .../metrics/stats/hidserv/ExtrapolatedHidServStats.java        | 10 ++++++----
 .../java/org/torproject/metrics/stats/hidserv/Simulate.java    |  9 +++++----
 5 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
index 36e7967..12a89a3 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Aggregator.java
@@ -13,6 +13,7 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedMap;
@@ -176,8 +177,8 @@ public class Aggregator {
         /* Put together all aggregated values in a single line. */
         String date = e.getKey();
         int numStats = weightedValues.size();
-        sb.append(String.format("%s,%s,%.0f,%.0f,%.0f,%.8f,%d%n", date,
-            type, weightedMean, weightedMedian, weightedInterquartileMean,
+        sb.append(String.format(Locale.US, "%s,%s,%.0f,%.0f,%.0f,%.8f,%d%n",
+            date, type, weightedMean, weightedMedian, weightedInterquartileMean,
             sumFraction, numStats));
       }
     }
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
index d5fd279..835ac6f 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ComputedNetworkFractions.java
@@ -8,6 +8,7 @@ import org.slf4j.LoggerFactory;
 
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.Locale;
 import java.util.Map;
 
 /** Computed fraction of hidden-service activity that a single relay is
@@ -116,9 +117,9 @@ public class ComputedNetworkFractions implements Document {
         validAfterDate);
     String second = validAfterHour
         + (this.fractionRendRelayedCells == 0.0 ? ","
-            : String.format(",%f", this.fractionRendRelayedCells))
+            : String.format(Locale.US, ",%f", this.fractionRendRelayedCells))
         + (this.fractionDirOnionsSeen == 0.0 ? ","
-            : String.format(",%f", this.fractionDirOnionsSeen));
+            : String.format(Locale.US, ",%f", this.fractionDirOnionsSeen));
     return new String[] { first, second };
   }
 
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
index f3163e1..9061aa3 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/DocumentStore.java
@@ -13,6 +13,7 @@ import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.LineNumberReader;
+import java.lang.reflect.InvocationTargetException;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -136,7 +137,7 @@ public class DocumentStore<T extends Document> {
             && !formattedString0.startsWith(prefix)) {
           /* Skip line not starting with prefix. */
         } else {
-          T document = this.clazz.newInstance();
+          T document = this.clazz.getDeclaredConstructor().newInstance();
           if (!document.parse(new String[] { formattedString0,
               line.substring(1) })) {
             log.warn("Unable to read line {} from {}. Not retrieving any "
@@ -151,7 +152,8 @@ public class DocumentStore<T extends Document> {
       log.warn("Unable to read {}. Not retrieving any previously stored "
           + "documents.", documentFile.getAbsolutePath(), e);
       return null;
-    } catch (InstantiationException | IllegalAccessException e) {
+    } catch (InstantiationException | IllegalAccessException
+        | NoSuchMethodException | InvocationTargetException e) {
       log.warn("Unable to read {}. Cannot instantiate document object.",
           documentFile.getAbsolutePath(), e);
       return null;
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
index ec09630..eb66c7a 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/ExtrapolatedHidServStats.java
@@ -6,6 +6,8 @@ package org.torproject.metrics.stats.hidserv;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Locale;
+
 /** Extrapolated network totals of hidden-service statistics reported by a
  * single relay.  Extrapolated values are based on reported statistics and
  * computed network fractions in the statistics interval. */
@@ -116,11 +118,11 @@ public class ExtrapolatedHidServStats implements Document {
         DateTimeHelper.ISO_DATE_FORMAT);
     String second = this.fingerprint
         + (this.fractionRendRelayedCells == 0.0 ? ",,"
-        : String.format(",%.0f,%f", this.extrapolatedRendRelayedCells,
-        this.fractionRendRelayedCells))
+        : String.format(Locale.US, ",%.0f,%f",
+        this.extrapolatedRendRelayedCells, this.fractionRendRelayedCells))
         + (this.fractionDirOnionsSeen == 0.0 ? ",,"
-        : String.format(",%.0f,%f", this.extrapolatedDirOnionsSeen,
-        this.fractionDirOnionsSeen));
+        : String.format(Locale.US, ",%.0f,%f",
+        this.extrapolatedDirOnionsSeen, this.fractionDirOnionsSeen));
     return new String[] { first, second };
   }
 
diff --git a/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
index ac8a82e..445d931 100644
--- a/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
+++ b/src/main/java/org/torproject/metrics/stats/hidserv/Simulate.java
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Random;
 import java.util.SortedMap;
@@ -196,8 +197,8 @@ public class Simulate {
           totalInterquartileProbability += extrapolation[2];
         }
       }
-      sb.append(String.format("%d,%.2f,%.0f,%.0f,%.0f%n", run, fraction,
-          totalValues / totalProbability, weightedMedian,
+      sb.append(String.format(Locale.US, "%d,%.2f,%.0f,%.0f,%.0f%n", run,
+          fraction, totalValues / totalProbability, weightedMedian,
           totalInterquartileValues / totalInterquartileProbability));
     }
     return sb.toString();
@@ -351,8 +352,8 @@ public class Simulate {
           totalInterquartileProbability += extrapolation[2];
         }
       }
-      sb.append(String.format("%d,%.2f,%.0f,%.0f,%.0f%n", run, fraction,
-          totalValues / totalProbability, weightedMedian,
+      sb.append(String.format(Locale.US, "%d,%.2f,%.0f,%.0f,%.0f%n", run,
+          fraction, totalValues / totalProbability, weightedMedian,
           totalInterquartileValues / totalInterquartileProbability));
     }
     return sb.toString();





More information about the tor-commits mailing list