]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3690 Bad charset when reading measure text data
authorSimon Brandhof <simon.brandhof@gmail.com>
Mon, 23 Jul 2012 22:31:18 +0000 (00:31 +0200)
committerSimon Brandhof <simon.brandhof@gmail.com>
Mon, 23 Jul 2012 22:31:18 +0000 (00:31 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/database/model/MeasureData.java

index 9dcfb371b8d92efae9261f4e69b871bd1aa6126c..d52e0e58ca051e8ecc544ae8d63515e38a407309 100644 (file)
  */
 package org.sonar.api.database.model;
 
+import com.google.common.base.Charsets;
+import com.google.common.base.Throwables;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
 import org.sonar.api.database.BaseIdentifiable;
 
 import javax.persistence.*;
+import java.io.UnsupportedEncodingException;
 
 @Entity
 @Table(name = "measure_data")
@@ -50,7 +53,12 @@ public class MeasureData extends BaseIdentifiable {
 
   public MeasureData(MeasureModel measure, String dataString) {
     this.measure = measure;
-    this.data = dataString.getBytes();
+    try {
+      this.data = dataString.getBytes(Charsets.UTF_8.name());
+    } catch (UnsupportedEncodingException e) {
+      // how is it possible to not support UTF-8 ?
+      Throwables.propagate(e);
+    }
   }
 
   public MeasureData() {
@@ -70,7 +78,12 @@ public class MeasureData extends BaseIdentifiable {
 
   public String getText() {
     if (data != null) {
-      return new String(data);
+      try {
+        return new String(data, Charsets.UTF_8.name());
+      } catch (UnsupportedEncodingException e) {
+        // how is it possible to not support UTF-8 ?
+        Throwables.propagate(e);
+      }
     }
     return null;
   }
@@ -90,10 +103,10 @@ public class MeasureData extends BaseIdentifiable {
   @Override
   public String toString() {
     return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
-        .append("snapshotId", snapshotId)
-        .append("mesasure", measure)
-        .append("data", data)
-        .toString();
+      .append("snapshotId", snapshotId)
+      .append("mesasure", measure)
+      .append("data", data)
+      .toString();
   }
 }