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!");
}
}