[tor-commits] [metrics-web/master] Make GetTor stats file parsing more robust.

karsten at torproject.org karsten at torproject.org
Wed May 2 13:04:11 UTC 2012


commit bfd2c04cb8ec972e9e71036f6c679c3ac06d9c73
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Wed May 2 15:02:54 2012 +0200

    Make GetTor stats file parsing more robust.
---
 src/org/torproject/ernie/cron/GetTorProcessor.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/org/torproject/ernie/cron/GetTorProcessor.java b/src/org/torproject/ernie/cron/GetTorProcessor.java
index 0c5325d..2b5d67a 100644
--- a/src/org/torproject/ernie/cron/GetTorProcessor.java
+++ b/src/org/torproject/ernie/cron/GetTorProcessor.java
@@ -53,13 +53,22 @@ public class GetTorProcessor {
           continue;
         }
         Map<String, Integer> obs = new HashMap<String, Integer>();
-        data.put(date, obs);
         for (int i = 2; i < parts.length; i++) {
-          String key = parts[i].split(":")[0].toLowerCase();
-          Integer value = new Integer(parts[i].split(":")[1]);
+          String[] partParts = parts[i].split(":");
+          if (partParts.length != 2) {
+            logger.warning("Illegal line in GetTor stats file: '" + line
+                + "'.  Skipping.");
+            obs = null;
+            break;
+          }
+          String key = partParts[0].toLowerCase();
+          Integer value = new Integer(partParts[1]);
           columns.add(key);
           obs.put(key, value);
         }
+        if (obs != null) {
+          data.put(date, obs);
+        }
       }
       br.close();
     } catch (IOException e) {



More information about the tor-commits mailing list