You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by br...@apache.org on 2010/05/01 15:45:38 UTC

svn commit: r940013 - in /incubator/thrift/trunk/lib/java: src/org/apache/thrift/ src/org/apache/thrift/protocol/ test/org/apache/thrift/

Author: bryanduxbury
Date: Sat May  1 13:45:38 2010
New Revision: 940013

URL: http://svn.apache.org/viewvc?rev=940013&view=rev
Log:
THRIFT-765. java: Revert the changes applied by THRIFT-765, as they appear to be unstable

Removed:
    incubator/thrift/trunk/lib/java/src/org/apache/thrift/Utf8Helper.java
    incubator/thrift/trunk/lib/java/test/org/apache/thrift/BenchStringEncoding.java
    incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestUtf8Helper.java
Modified:
    incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java
    incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java

Modified: incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java?rev=940013&r1=940012&r2=940013&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java (original)
+++ incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java Sat May  1 13:45:38 2010
@@ -19,8 +19,9 @@
 
 package org.apache.thrift.protocol;
 
+import java.io.UnsupportedEncodingException;
+
 import org.apache.thrift.TException;
-import org.apache.thrift.Utf8Helper;
 import org.apache.thrift.transport.TTransport;
 
 /**
@@ -179,9 +180,13 @@ public class TBinaryProtocol extends TPr
   }
 
   public void writeString(String str) throws TException {
-    byte[] dat = Utf8Helper.encode(str);
-    writeI32(dat.length);
-    trans_.write(dat, 0, dat.length);
+    try {
+      byte[] dat = str.getBytes("UTF-8");
+      writeI32(dat.length);
+      trans_.write(dat, 0, dat.length);
+    } catch (UnsupportedEncodingException uex) {
+      throw new TException("JVM DOES NOT SUPPORT UTF-8");
+    }
   }
 
   public void writeBinary(byte[] bin) throws TException {
@@ -328,20 +333,27 @@ public class TBinaryProtocol extends TPr
     int size = readI32();
 
     if (trans_.getBytesRemainingInBuffer() >= size) {
-      char[] charBuf = new char[size];
-      int charsDecoded = Utf8Helper.decode(trans_.getBuffer(), trans_.getBufferPosition(), size, charBuf);
-      trans_.consumeBuffer(size);
-      return new String(charBuf, 0, charsDecoded);
+      try {
+        String s = new String(trans_.getBuffer(), trans_.getBufferPosition(), size, "UTF-8");
+        trans_.consumeBuffer(size);
+        return s;
+      } catch (UnsupportedEncodingException e) {
+        throw new TException("JVM DOES NOT SUPPORT UTF-8");
+      }
     }
 
     return readStringBody(size);
   }
 
   public String readStringBody(int size) throws TException {
-    checkReadLength(size);
-    byte[] buf = new byte[size];
-    trans_.readAll(buf, 0, size);
-    return Utf8Helper.decode(buf);
+    try {
+      checkReadLength(size);
+      byte[] buf = new byte[size];
+      trans_.readAll(buf, 0, size);
+      return new String(buf, "UTF-8");
+    } catch (UnsupportedEncodingException uex) {
+      throw new TException("JVM DOES NOT SUPPORT UTF-8");
+    }
   }
 
   public byte[] readBinary() throws TException {

Modified: incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java?rev=940013&r1=940012&r2=940013&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java (original)
+++ incubator/thrift/trunk/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java Sat May  1 13:45:38 2010
@@ -20,9 +20,10 @@
 
 package org.apache.thrift.protocol;
 
+import java.io.UnsupportedEncodingException;
+
 import org.apache.thrift.ShortStack;
 import org.apache.thrift.TException;
-import org.apache.thrift.Utf8Helper;
 import org.apache.thrift.transport.TTransport;
 
 /**
@@ -292,7 +293,11 @@ public final class TCompactProtocol exte
    * Write a string to the wire with a varint size preceeding.
    */
   public void writeString(String str) throws TException {
-    writeBinary(Utf8Helper.encode(str));
+    try {
+      writeBinary(str.getBytes("UTF-8"));
+    } catch (UnsupportedEncodingException e) {
+      throw new TException("UTF-8 not supported!");
+    }
   }
 
   /**
@@ -605,13 +610,16 @@ public final class TCompactProtocol exte
       return "";
     }
 
-    if (trans_.getBytesRemainingInBuffer() >= length) {
-      char[] charBuf = new char[length];
-      int charsDecoded = Utf8Helper.decode(trans_.getBuffer(), trans_.getBufferPosition(), length, charBuf);
-      trans_.consumeBuffer(length);
-      return new String(charBuf, 0, charsDecoded);
-    } else {
-      return Utf8Helper.decode(readBinary(length));
+    try {
+      if (trans_.getBytesRemainingInBuffer() >= length) {
+        String str = new String(trans_.getBuffer(), trans_.getBufferPosition(), length, "UTF-8");
+        trans_.consumeBuffer(length);
+        return str;
+      } else {
+        return new String(readBinary(length), "UTF-8");
+      }
+    } catch (UnsupportedEncodingException e) {
+      throw new TException("UTF-8 not supported!");
     }
   }