[tor-commits] [metrics-web/master] Fix a String encoding problem with OpenJDK.

karsten at torproject.org karsten at torproject.org
Thu Oct 20 16:35:22 UTC 2011


commit 8d02e8529ffc757be17dea188d239c333a62eee1
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu Oct 20 13:22:07 2011 +0200

    Fix a String encoding problem with OpenJDK.
---
 .../cron/RelayDescriptorDatabaseImporter.java      |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java b/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
index f8f1e9a..4a9f97c 100644
--- a/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
+++ b/src/org/torproject/ernie/cron/RelayDescriptorDatabaseImporter.java
@@ -496,8 +496,12 @@ public final class RelayDescriptorDatabaseImporter {
           this.psD.setLong(7, bandwidthAvg);
           this.psD.setLong(8, bandwidthBurst);
           this.psD.setLong(9, bandwidthObserved);
+          /* Remove all non-ASCII characters from the platform string, or
+           * we'll make Postgres unhappy.  Sun's JDK and OpenJDK behave
+           * differently when creating a new String with a given encoding.
+           * That's what the regexp below is for. */
           this.psD.setString(10, new String(platform.getBytes(),
-              "US-ASCII"));
+              "US-ASCII").replaceAll("[^\\p{ASCII}]",""));
           this.psD.setTimestamp(11, new Timestamp(published), cal);
           this.psD.setLong(12, uptime);
           this.psD.setString(13, extraInfoDigest);





More information about the tor-commits mailing list