[tor-commits] [metrics-web/master] Detect broken GetTor stats lines.

karsten at torproject.org karsten at torproject.org
Wed Nov 2 08:20:36 UTC 2011


commit 5f9a9ca0879fc03db5336ba5416e347d470b79c3
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Wed Nov 2 09:20:01 2011 +0100

    Detect broken GetTor stats lines.
---
 src/org/torproject/ernie/cron/GetTorProcessor.java |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/org/torproject/ernie/cron/GetTorProcessor.java b/src/org/torproject/ernie/cron/GetTorProcessor.java
index a6ddf11..65f2dd4 100644
--- a/src/org/torproject/ernie/cron/GetTorProcessor.java
+++ b/src/org/torproject/ernie/cron/GetTorProcessor.java
@@ -4,6 +4,7 @@ package org.torproject.ernie.cron;
 
 import java.io.*;
 import java.sql.*;
+import java.text.*;
 import java.util.*;
 import java.util.logging.*;
 
@@ -14,6 +15,7 @@ public class GetTorProcessor {
 
     /* Parse stats file. */
     File getTorFile = new File(getTorDirectory, "gettor_stats.txt");
+    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
     if (!getTorFile.exists() || getTorFile.isDirectory()) {
       logger.warning("Could not read GetTor stats");
       return;
@@ -28,6 +30,13 @@ public class GetTorProcessor {
       while ((line = br.readLine()) != null) {
         String[] parts = line.split(" ");
         String date = parts[0];
+        try {
+          dateFormat.parse(date);
+        } catch (ParseException e) {
+          logger.warning("Illegal line in GetTor stats file: '" + line
+              + "'.  Skipping.");
+          continue;
+        }
         Map<String, Integer> obs = new HashMap<String, Integer>();
         data.put(date, obs);
         for (int i = 2; i < parts.length; i++) {



More information about the tor-commits mailing list