Java Thrift libraries no longer use specially defined UInt32 etc. classes

Summary: There was really no need for these now that we are getting rid of unsigned, they should all just use the builtin int and long types





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664741 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/src/protocol/TBinaryProtocol.java b/lib/java/src/protocol/TBinaryProtocol.java
index b2e77d9..a759005 100644
--- a/lib/java/src/protocol/TBinaryProtocol.java
+++ b/lib/java/src/protocol/TBinaryProtocol.java
@@ -2,7 +2,6 @@
 
 import com.facebook.thrift.TException;
 import com.facebook.thrift.transport.TTransport;
-import com.facebook.thrift.types.*;
 
 /**
  * Binary protocol implementation for thrift.
@@ -10,227 +9,176 @@
  * @author Mark Slee <mcslee@facebook.com>
  */
 public class TBinaryProtocol implements TProtocol {
-  public int writeStructBegin (TTransport out,
-                               TStruct    struct)  throws TException {
-    return 0;
+  public void writeStructBegin(TTransport out, TStruct struct) throws TException {}
+
+  public void writeStructEnd(TTransport out) throws TException {}
+
+  public void writeFieldBegin(TTransport out, TField field) throws TException {
+    writeByte(out, field.type);
+    writeI32(out, field.id);
   }
 
-  public int writeStructEnd   (TTransport out)     throws TException {
-    return 0;
+  public void writeFieldEnd(TTransport out) throws TException {}
+
+  public void writeFieldStop(TTransport out) throws TException {
+    writeByte(out, TType.STOP);
   }
 
-  public int writeFieldBegin  (TTransport out,
-                               TField     field)   throws TException {
-    return
-      writeByte(out, field.type.getCode()) +
-      writeI32(out, field.id);
+  public void writeMapBegin(TTransport out, TMap map) throws TException {
+    writeByte(out, map.keyType);
+    writeByte(out, map.valueType);
+    writeI32(out, map.size);
   }
 
-  public int writeFieldEnd    (TTransport out)     throws TException {
-    return 0;
+  public void writeMapEnd(TTransport out) throws TException {}
+
+  public void writeListBegin(TTransport out, TList list) throws TException {
+    writeByte(out, list.elemType);
+    writeI32(out, list.size);
   }
 
-  public int writeFieldStop   (TTransport out)     throws TException {
-    return
-      writeByte(out, TType.STOP.getCode());
+  public void writeListEnd(TTransport out) throws TException {}
+
+  public void writeSetBegin(TTransport out, TSet set) throws TException {
+    writeByte(out, set.elemType);
+    writeI32(out, set.size);
   }
 
-  public int writeMapBegin    (TTransport out,
-                               TMap       map)     throws TException {
-    return
-      writeByte(out, map.keyType.getCode()) +
-      writeByte(out, map.valueType.getCode()) +
-      writeI32(out, map.size);
+  public void writeSetEnd(TTransport out) throws TException {}
+
+  byte[] bout = new byte[1];
+  public void writeByte(TTransport out, byte b) throws TException {
+    bout[0] = b;
+    out.write(bout, 0, 1);
   }
 
-  public int writeMapEnd      (TTransport out)     throws TException {
-    return 0;
+  public void writeU32(TTransport out, int u32) throws TException {
+    writeI32(out, u32);
   }
 
-  public int writeListBegin   (TTransport out,
-                               TList      list)    throws TException {
-    return
-      writeByte(out, list.elemType.getCode()) +
-      writeI32(out, list.size);
+  byte[] i32out = new byte[4];
+  public void writeI32(TTransport out, int i32) throws TException {
+    i32out[0] = (byte)(0xff & (i32 >> 24));
+    i32out[1] = (byte)(0xff & (i32 >> 16));
+    i32out[2] = (byte)(0xff & (i32 >> 8));
+    i32out[3] = (byte)(0xff & (i32));
+    out.write(i32out, 0, 4);
   }
 
-  public int writeListEnd     (TTransport out)     throws TException {
-    return 0;
+  public void writeU64(TTransport out, long u64) throws TException {
+    writeI64(out, u64);
   }
 
-  public int writeSetBegin    (TTransport out,
-                               TSet       set)     throws TException {
-    return
-      writeByte(out, set.elemType.getCode()) +
-      writeI32(out, set.size);
+  byte[] i64out = new byte[8];
+  public void writeI64(TTransport out, long i64) throws TException {
+    i64out[0] = (byte)(0xff & (i64 >> 56));
+    i64out[1] = (byte)(0xff & (i64 >> 48));
+    i64out[2] = (byte)(0xff & (i64 >> 40));
+    i64out[3] = (byte)(0xff & (i64 >> 32));
+    i64out[4] = (byte)(0xff & (i64 >> 24));
+    i64out[5] = (byte)(0xff & (i64 >> 16));
+    i64out[6] = (byte)(0xff & (i64 >> 8));
+    i64out[7] = (byte)(0xff & (i64));
+    out.write(i64out, 0, 8);
   }
 
-  public int writeSetEnd      (TTransport out)     throws TException {
-    return 0;
-  }
-
-  public int writeByte        (TTransport out,
-                               UInt8      b)       throws TException {
-    out.write(b.data(), 0, 1);
-    return 1;
-  }
-
-  public int writeU32         (TTransport out,
-                               UInt32     u32)     throws TException {
-    out.write(u32.data(), 0, 4);
-    return 4;
-  }
-
-  public int writeI32         (TTransport out,
-                               Int32      i32)     throws TException {
-    out.write(i32.data(), 0, 4);
-    return 4;
-  }
-
-  public int writeU64         (TTransport out,
-                               UInt64     u64)     throws TException {
-    out.write(u64.data(), 0, 8);
-    return 8;
-  }
-
-  public int writeI64         (TTransport out,
-                               Int64      i64)     throws TException {
-    out.write(i64.data(), 0, 8);
-    return 8;
-  }
-
-  public int writeString      (TTransport out,
-                               TString    str)     throws TException {
-    byte[] dat = str.value.getBytes();
-    int sent = writeI32(out, new Int32(dat.length));
+  public void writeString(TTransport out, String str) throws TException {
+    byte[] dat = str.getBytes();
+    writeI32(out, dat.length);
     out.write(dat, 0, dat.length);
-    return sent + dat.length;
   }
 
   /**
    * Reading methods.
    */
 
-  public int readStructBegin  (TTransport in,
-                               TStruct    struct)  throws TException {
-    struct.name = "";
-    return 0;
+  public TStruct readStructBegin(TTransport in) throws TException {
+    return new TStruct();
   }
 
-  public int readStructEnd    (TTransport  in)     throws TException {
-    return 0;
-  }
+  public void readStructEnd(TTransport in) throws TException {}
 
-  public int readFieldBegin   (TTransport  in,
-                               TField      field)  throws TException {
-    int recv = 0;
-    UInt8 t = new UInt8();
-
-    recv += readByte(in, t);
-    field.type = TType.getType(t);
-    if (field.type.equals(TType.STOP)) {
-      field.id = new Int32(0);
-      return recv;
+  public TField readFieldBegin(TTransport in) throws TException {
+    TField field = new TField();
+    field.type = readByte(in);
+    if (field.type != TType.STOP) {
+      field.id = readI32(in);
     }
-    recv += readI32(in, field.id);
-    return recv;
+    return field;
   }
   
-  public int readFieldEnd     (TTransport  in)     throws TException {
-    return 0;
-  }
+  public void readFieldEnd(TTransport in) throws TException {}
  
-  public int readMapBegin     (TTransport  in,
-                               TMap        map)    throws TException {
-    int recv = 0;
-    UInt8 t = new UInt8();
-    recv += readByte(in, t);
-    map.keyType = TType.getType(t);
-    recv += readByte(in, t);
-    map.valueType = TType.getType(t);
-    recv += readI32(in, map.size);
-    return recv;
+  public TMap readMapBegin(TTransport in) throws TException {
+    TMap map = new TMap();
+    map.keyType = readByte(in);
+    map.valueType = readByte(in);
+    map.size = readI32(in);
+    return map;
   }
 
-  public int readMapEnd       (TTransport  in)     throws TException {
-    return 0;
+  public void readMapEnd(TTransport in) throws TException {}
+
+  public TList readListBegin(TTransport in) throws TException {
+    TList list = new TList();
+    list.elemType = readByte(in);
+    list.size = readI32(in);
+    return list;
   }
 
-  public int readListBegin    (TTransport  in,
-                               TList       list)   throws TException {
-    int recv = 0;
-    UInt8 t = new UInt8();
-    recv += readByte(in, t);
-    list.elemType = TType.getType(t);
-    recv += readI32(in, list.size);
-    return recv;
+  public void readListEnd(TTransport in) throws TException {}
+
+  public TSet readSetBegin(TTransport in) throws TException {
+    TSet set = new TSet();
+    set.elemType = readByte(in);
+    set.size = readI32(in);
+    return set;
   }
 
-  public int readListEnd      (TTransport  in)     throws TException {
-    return 0;
+  public void readSetEnd(TTransport in) throws TException {}
+
+  byte[] bin = new byte[1];
+  public byte readByte(TTransport in) throws TException {
+    in.readAll(bin, 0, 1);
+    return bin[0];
   }
 
-  public int readSetBegin     (TTransport  in,
-                               TSet        set)    throws TException {
-    int recv = 0;
-    UInt8 t = new UInt8();
-    recv += readByte(in, t);
-    set.elemType = TType.getType(t);
-    recv += readI32(in, set.size);
-    return recv;
+  public int readU32(TTransport in) throws TException {
+    return readI32(in);
   }
 
-  public int readSetEnd       (TTransport  in)     throws TException {
-    return 0;
+  byte[] i32rd = new byte[4];
+  public int readI32(TTransport in) throws TException {
+    in.readAll(i32rd, 0, 4);
+    return
+      ((i32rd[0] & 0xff) << 24) |
+      ((i32rd[1] & 0xff) << 16) |
+      ((i32rd[2] & 0xff) <<  8) |
+      ((i32rd[3] & 0xff));
   }
 
-  public int readByte         (TTransport  in,
-                               UInt8       b)      throws TException {
-    byte[] buf = new byte[1];
-    in.readAll(buf, 0, 1);
-    b.read(buf, 0);
-    return 1;
-  }
-
-  public int readU32          (TTransport  in,
-                               UInt32      u32)    throws TException {
-    byte[] buf = new byte[4];
-    in.readAll(buf, 0, 4);
-    u32.read(buf, 0);
-    return 4;
-  }
-
-  public int readI32          (TTransport  in,
-                               Int32       i32)    throws TException {
-    byte[] buf = new byte[4];
-    in.readAll(buf, 0, 4);
-    i32.read(buf, 0);
-    return 4;
-  }
-
-  public int readU64          (TTransport  in,
-                               UInt64      u64)    throws TException {
-    byte[] buf = new byte[8];
-    in.readAll(buf, 0, 8);
-    u64.read(buf, 0);
-    return 8;
+  public long readU64(TTransport in) throws TException {
+    return readI64(in);
   }
   
-  public int readI64          (TTransport  in,
-                               Int64       i64)    throws TException {
-    byte[] buf = new byte[8];
-    in.readAll(buf, 0, 8);
-    i64.read(buf, 0);
-    return 8;
+  byte[] i64rd = new byte[8];
+  public long readI64(TTransport in) throws TException {
+    in.readAll(i64rd, 0, 8);
+    return
+      ((long)(i64rd[0] & 0xff) << 56) |
+      ((long)(i64rd[1] & 0xff) << 48) |
+      ((long)(i64rd[2] & 0xff) << 40) |
+      ((long)(i64rd[3] & 0xff) << 32) |
+      ((long)(i64rd[4] & 0xff) << 24) |
+      ((long)(i64rd[5] & 0xff) << 16) |
+      ((long)(i64rd[6] & 0xff) <<  8) |
+      ((long)(i64rd[7] & 0xff));
   }
 
-  public int readString       (TTransport  in,
-                               TString     s)      throws TException {
-    Int32 size = new Int32();
-    int recv = readI32(in, size);
-    byte[] buf = new byte[size.get()];
-    in.readAll(buf, 0, size.get());
-    s.value = new String(buf);
-    return recv + size.get();
+  public String readString(TTransport in)  throws TException {
+    int size = readI32(in);
+    byte[] buf = new byte[size];
+    in.readAll(buf, 0, size);
+    return new String(buf);
   }
 }
diff --git a/lib/java/src/protocol/TField.java b/lib/java/src/protocol/TField.java
index d758c68..50570fb 100644
--- a/lib/java/src/protocol/TField.java
+++ b/lib/java/src/protocol/TField.java
@@ -1,7 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
-
 /**
  * Helper class that encapsulates field metadata.
  *
@@ -10,17 +8,13 @@
 public class TField {
   public TField() {}
 
-  public TField(String n, TType t, int i) {
-    this(n, t, new Int32(i));
-  }
-
-  public TField(String n, TType t, Int32 i) {
+  public TField(String n, byte t, int i) {
     name = n;
     type = t;
     id = i;
   }
 
   public String name = "";
-  public TType  type = TType.STOP;
-  public Int32 id = new Int32();
+  public byte   type = TType.STOP;
+  public int    id   = 0;
 }
diff --git a/lib/java/src/protocol/TList.java b/lib/java/src/protocol/TList.java
index ff76ffd..0528619 100644
--- a/lib/java/src/protocol/TList.java
+++ b/lib/java/src/protocol/TList.java
@@ -1,7 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
-
 /**
  * Helper class that encapsulates list metadata.
  *
@@ -10,15 +8,11 @@
 public class TList {
   public TList() {}
   
-  public TList(TType t, int s) {
-    this(t, new Int32(s));
-  }
-
-  public TList(TType t, Int32 s) {
+  public TList(byte t, int s) {
     elemType = t;
     size = s;
   }
 
-  public TType  elemType = TType.STOP;
-  public Int32 size = new Int32();
+  public byte elemType = TType.STOP;
+  public int  size     = 0;
 }
diff --git a/lib/java/src/protocol/TMap.java b/lib/java/src/protocol/TMap.java
index f251fa6..e8d18e1 100644
--- a/lib/java/src/protocol/TMap.java
+++ b/lib/java/src/protocol/TMap.java
@@ -1,7 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
-
 /**
  * Helper class that encapsulates map metadata.
  *
@@ -10,17 +8,13 @@
 public class TMap {
   public TMap() {}
   
-  public TMap(TType k, TType v, int s) {
-    this(k, v, new Int32(s));
-  }
-
-  public TMap(TType k, TType v, Int32 s) {
+  public TMap(byte k, byte v, int s) {
     keyType = k;
     valueType = v;
     size = s;
   }
 
-  public TType  keyType = TType.STOP;
-  public TType  valueType = TType.STOP;
-  public Int32 size = new Int32();;
+  public byte  keyType   = TType.STOP;
+  public byte  valueType = TType.STOP;
+  public int   size      = 0;
 }
diff --git a/lib/java/src/protocol/TProtocol.java b/lib/java/src/protocol/TProtocol.java
index f44eb9e..a60becb 100644
--- a/lib/java/src/protocol/TProtocol.java
+++ b/lib/java/src/protocol/TProtocol.java
@@ -1,6 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
 import com.facebook.thrift.TException;
 import com.facebook.thrift.transport.TTransport;
 
@@ -15,95 +14,85 @@
    * Writing methods.
    */
 
-  public int writeStructBegin (TTransport out,
-                               TStruct    struct)  throws TException;
-  public int writeStructEnd   (TTransport out)     throws TException;
+  public void writeStructBegin (TTransport out,
+                                TStruct    struct)  throws TException;
 
-  public int writeFieldBegin  (TTransport out,
-                               TField     field)   throws TException;
+  public void writeStructEnd   (TTransport out)     throws TException;
 
-  public int writeFieldEnd    (TTransport out)     throws TException;
+  public void writeFieldBegin  (TTransport out,
+                                TField     field)   throws TException;
 
-  public int writeFieldStop   (TTransport out)     throws TException;
+  public void writeFieldEnd    (TTransport out)     throws TException;
 
-  public int writeMapBegin    (TTransport out,
-                               TMap       map)     throws TException;
+  public void writeFieldStop   (TTransport out)     throws TException;
 
-  public int writeMapEnd      (TTransport out)     throws TException;
+  public void writeMapBegin    (TTransport out,
+                                TMap       map)     throws TException;
 
-  public int writeListBegin   (TTransport out,
-                               TList      list)    throws TException;
+  public void writeMapEnd      (TTransport out)     throws TException;
 
-  public int writeListEnd     (TTransport out)     throws TException;
+  public void writeListBegin   (TTransport out,
+                                TList      list)    throws TException;
 
-  public int writeSetBegin    (TTransport out,
-                               TSet       set)     throws TException;
+  public void writeListEnd     (TTransport out)     throws TException;
 
-  public int writeSetEnd      (TTransport out)     throws TException;
+  public void writeSetBegin    (TTransport out,
+                                TSet       set)     throws TException;
 
-  public int writeByte        (TTransport out,
-                               UInt8      b)       throws TException;
+  public void writeSetEnd      (TTransport out)     throws TException;
 
-  public int writeU32         (TTransport out,
-                               UInt32     u32)     throws TException;
+  public void writeByte        (TTransport out,
+                                byte       b)       throws TException;
 
-  public int writeI32         (TTransport out,
-                               Int32      i32)     throws TException;
+  public void writeU32         (TTransport out,
+                                int        u32)     throws TException;
 
-  public int writeU64         (TTransport out,
-                               UInt64     u64)     throws TException;
+  public void writeI32         (TTransport out,
+                                int        i32)     throws TException;
 
-  public int writeI64         (TTransport out,
-                               Int64      i64)     throws TException;
+  public void writeU64         (TTransport out,
+                                long       u64)     throws TException;
 
-  public int writeString      (TTransport out,
-                               TString    str)     throws TException;
+  public void writeI64         (TTransport out,
+                                long       i64)     throws TException;
+
+  public void writeString      (TTransport out,
+                                String     str)     throws TException;
 
   /**
    * Reading methods.
    */
 
-  public int readStructBegin  (TTransport in,
-                               TStruct    struct)  throws TException;
+  public TStruct readStructBegin  (TTransport in)  throws TException;
 
-  public int readStructEnd    (TTransport  in)     throws TException;
+  public void    readStructEnd    (TTransport in)  throws TException;
 
-  public int readFieldBegin   (TTransport  in,
-                               TField      field)  throws TException;
+  public TField  readFieldBegin   (TTransport in)  throws TException;
   
-  public int readFieldEnd     (TTransport  in)     throws TException;
+  public void    readFieldEnd     (TTransport in)  throws TException;
  
-  public int readMapBegin     (TTransport  in,
-                               TMap        map)    throws TException;
+  public TMap    readMapBegin     (TTransport in)  throws TException;
 
-  public int readMapEnd       (TTransport  in)     throws TException;
+  public void    readMapEnd       (TTransport in)  throws TException;
 
-  public int readListBegin    (TTransport  in,
-                               TList       list)   throws TException;
+  public TList   readListBegin    (TTransport in)  throws TException;
 
-  public int readListEnd      (TTransport  in)     throws TException;
+  public void    readListEnd      (TTransport in)  throws TException;
 
-  public int readSetBegin     (TTransport  in,
-                               TSet        set)    throws TException;
+  public TSet    readSetBegin     (TTransport in)  throws TException;
 
-  public int readSetEnd       (TTransport  in)     throws TException;
+  public void    readSetEnd       (TTransport in)  throws TException;
 
-  public int readByte         (TTransport  in,
-                               UInt8       b)      throws TException;
+  public byte    readByte         (TTransport in)  throws TException;
 
-  public int readU32          (TTransport  in,
-                               UInt32      u32)    throws TException;
+  public int     readU32          (TTransport in)  throws TException;
 
-  public int readI32          (TTransport  in,
-                               Int32       i32)    throws TException;
+  public int     readI32          (TTransport in)  throws TException;
 
-  public int readU64          (TTransport  in,
-                               UInt64      u64)    throws TException;
+  public long    readU64          (TTransport in)  throws TException;
   
-  public int readI64          (TTransport  in,
-                               Int64       i64)    throws TException;
+  public long    readI64          (TTransport in)  throws TException;
 
-  public int readString       (TTransport  in,
-                               TString     s)      throws TException;
+  public String  readString       (TTransport in)  throws TException;
 
 }
diff --git a/lib/java/src/protocol/TProtocolUtil.java b/lib/java/src/protocol/TProtocolUtil.java
index b182139..b8e5afe 100644
--- a/lib/java/src/protocol/TProtocolUtil.java
+++ b/lib/java/src/protocol/TProtocolUtil.java
@@ -1,6 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
 import com.facebook.thrift.TException;
 import com.facebook.thrift.transport.TTransport;
 
@@ -11,94 +10,68 @@
  * @author Mark Slee <mcslee@facebook.com>
  */
 public class TProtocolUtil {
-  public static int skip(TProtocol prot, TTransport in, TType type)
+  public static void skip(TProtocol prot, TTransport in, byte type)
     throws TException {
 
     switch (type) {
-    case BYTE:
+    case TType.BYTE:
       {
-        UInt8 b = new UInt8();
-        return prot.readByte(in, b);
+        prot.readByte(in);
       }
-    case U32:
+    case TType.U32:
+    case TType.I32:
       {
-        UInt32 u32 = new UInt32();
-        return prot.readU32(in, u32);
+        prot.readI32(in);
       }
-    case I32:
+    case TType.U64:
+    case TType.I64:
       {
-        Int32 i32 = new Int32();
-        return prot.readI32(in, i32);
+        prot.readI64(in);
       }
-    case U64:
+    case TType.STRING:
       {
-        UInt64 u64 = new UInt64();
-        return prot.readU64(in, u64);
+        prot.readString(in);
       }
-    case I64:
+    case TType.STRUCT:
       {
-        Int64 i64 = new Int64();
-        return prot.readI64(in, i64);
-      }
-    case STRING:
-      {
-        TString s = new TString();
-        return prot.readString(in, s);
-      }
-    case STRUCT:
-      {
-        int result = 0;
-        TString name = new TString();
-        TStruct struct = new TStruct();
-        TField field = new TField();
-        result += prot.readStructBegin(in, struct);
+        prot.readStructBegin(in);
         while (true) {
-          result += prot.readFieldBegin(in, field);
-          if (field.type.equals(TType.STOP)) {
+          TField field = prot.readFieldBegin(in);
+          if (field.type == TType.STOP) {
             break;
           }
-          result += skip(prot, in, field.type);
-          result += prot.readFieldEnd(in);
+          skip(prot, in, field.type);
+          prot.readFieldEnd(in);
         }
-        result += prot.readStructEnd(in);
-        return result;
+        prot.readStructEnd(in);
       }
-    case MAP:
+    case TType.MAP:
       {
-        int result = 0;
-        TMap map = new TMap();
-        result += prot.readMapBegin(in, map);
-        for (int i = 0; i < map.size.get(); i++) {
-          result += skip(prot, in, map.keyType);
-          result += skip(prot, in, map.valueType);
+        TMap map = prot.readMapBegin(in);
+        for (int i = 0; i < map.size; i++) {
+          skip(prot, in, map.keyType);
+          skip(prot, in, map.valueType);
         }
-        result += prot.readMapEnd(in);
-        return result;
+        prot.readMapEnd(in);
       }
-    case SET:
-      {
-        int result = 0;
-        TSet set = new TSet();
-        result += prot.readSetBegin(in, set);
-        for (int i = 0; i < set.size.get(); i++) {
-          result += skip(prot, in, set.elemType);
+    case TType.SET:
+      {        
+        TSet set = prot.readSetBegin(in);
+        for (int i = 0; i < set.size; i++) {
+          skip(prot, in, set.elemType);
         }
-        result += prot.readSetEnd(in);
-        return result;
+        prot.readSetEnd(in);
       }
-    case LIST:
+    case TType.LIST:
       {
-        int result = 0;
-        TList list = new TList();
-        result += prot.readListBegin(in, list);
-        for (int i = 0; i < list.size.get(); i++) {
-          result += skip(prot, in, list.elemType);
+        TList list = prot.readListBegin(in);
+        for (int i = 0; i < list.size; i++) {
+          skip(prot, in, list.elemType);
         }
-        result += prot.readListEnd(in);
-        return result;
+        prot.readListEnd(in);
       }
     default:
-      return 0;
+      return;
     }
   }
 }
diff --git a/lib/java/src/protocol/TSet.java b/lib/java/src/protocol/TSet.java
index fa6e24d..542f3f5 100644
--- a/lib/java/src/protocol/TSet.java
+++ b/lib/java/src/protocol/TSet.java
@@ -1,7 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
-
 /**
  * Helper class that encapsulates set metadata.
  *
@@ -10,15 +8,11 @@
 public class TSet {
   public TSet() {}
 
-  public TSet(TType t, int s) {
-    this(t, new Int32(s));
-  }
-
-  public TSet(TType t, Int32 s) {
+  public TSet(byte t, int s) {
     elemType = t;
     size = s;
   }
 
-  public TType  elemType = TType.STOP;
-  public Int32 size = new Int32();
+  public byte elemType = TType.STOP;
+  public int  size     = 0;
 }
diff --git a/lib/java/src/protocol/TStruct.java b/lib/java/src/protocol/TStruct.java
index 2fbcb8f..b8b94ce 100644
--- a/lib/java/src/protocol/TStruct.java
+++ b/lib/java/src/protocol/TStruct.java
@@ -1,7 +1,5 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.*;
-
 /**
  * Helper class that encapsulates struct metadata.
  *
diff --git a/lib/java/src/protocol/TType.java b/lib/java/src/protocol/TType.java
index 21b7914..96f06d3 100644
--- a/lib/java/src/protocol/TType.java
+++ b/lib/java/src/protocol/TType.java
@@ -1,82 +1,22 @@
 package com.facebook.thrift.protocol;
 
-import com.facebook.thrift.types.UInt8;
-
 /**
  * Type constants in the Thrift protocol.
  *
  * @author Mark Slee <mcslee@facebook.com>
  */
-public enum TType {
-  STOP   (1),
-  BYTE   (2),
-  U16    (3),
-  I16    (4),
-  U32    (5),
-  I32    (6),
-  U64    (7),
-  I64    (8),
-  STRING (9),
-  STRUCT (10),
-  MAP    (11),
-  SET    (12),
-  LIST   (13);
-
-  /** U8 identifier */
-  private UInt8 code_;
-
-  /**
-   * Constructor to create a TType object from its code.
-   *
-   * @param code The identifier code for this type
-   */
-  private TType(int code) {
-    code_ = new UInt8((byte)code);
-  }
-
-  /**
-   * Accessor for the code.
-   */
-  public UInt8 getCode() {
-    return code_;
-  }
-
-  /**
-   * Static method to get a type object from a byte.
-   *
-   * @param code The type code
-   */
-  public static TType getType(UInt8 code) {
-    switch (code.get()) {
-    case 1:
-      return STOP;
-    case 2:
-      return BYTE;
-    case 3:
-      return U16;
-    case 4:
-      return I16;
-    case 5:
-      return U32;
-    case 6:
-      return I32;
-    case 7:
-      return U64;
-    case 8:
-      return I64;
-    case 9:
-      return STRING;
-    case 10:
-      return STRUCT;
-    case 11:
-      return MAP;
-    case 12:
-      return SET;
-    case 13:
-      return LIST;
-    default:
-      System.err.println("WARNING: Unidentified type code: " + code.get());
-      return STOP;
-    }
-  }
+public final class TType {
+  public static final byte STOP   = 1;
+  public static final byte BYTE   = 2;
+  public static final byte U16    = 3;
+  public static final byte I16    = 4;
+  public static final byte U32    = 5;
+  public static final byte I32    = 6;
+  public static final byte U64    = 7;
+  public static final byte I64    = 8;
+  public static final byte STRING = 9;
+  public static final byte STRUCT = 10;
+  public static final byte MAP    = 11;
+  public static final byte SET    = 12;
+  public static final byte LIST   = 13;
 }
diff --git a/lib/java/src/transport/TSocket.java b/lib/java/src/transport/TSocket.java
index 2092f11..6b4fa3b 100644
--- a/lib/java/src/transport/TSocket.java
+++ b/lib/java/src/transport/TSocket.java
@@ -32,8 +32,8 @@
     socket_ = socket;
     if (isOpen()) {
       try {
-        inputStream_ = new BufferedInputStream(socket_.getInputStream());
-        outputStream_ = new BufferedOutputStream(socket_.getOutputStream());
+        inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024);
+        outputStream_ = new BufferedOutputStream(socket_.getOutputStream(), 1024);
       } catch (IOException iox) {
         close();
         throw new TTransportException(iox);
@@ -96,8 +96,8 @@
 
     try {
       socket_.connect(new InetSocketAddress(host_, port_));
-      inputStream_ = new BufferedInputStream(socket_.getInputStream());
-      outputStream_ = new BufferedOutputStream(socket_.getOutputStream());
+      inputStream_ = new BufferedInputStream(socket_.getInputStream(), 1024);
+      outputStream_ = new BufferedOutputStream(socket_.getOutputStream(), 1024);
     } catch (IOException iox) {
       close();
       throw new TTransportException(iox);
diff --git a/lib/java/src/types/Int32.java b/lib/java/src/types/Int32.java
deleted file mode 100644
index e6a8cf2..0000000
--- a/lib/java/src/types/Int32.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.facebook.thrift.types;
-
-import java.io.ByteArrayOutputStream;
-
-/**
- * Wrapper for Pillar TyInt32. We have to flip the byte order in here
- * because Pillar is little endian.
- *
- * @author Mark Slee (mcslee@facebook.com)
- *
- * See: http://darksleep.com/player/JavaAndUnsignedTypes.html
- *
- */
-public class Int32 {
-  private int intValue_ = 0;
-  private byte[] data_ = new byte[4];
-  
-  public int get() {
-    return intValue_;
-  }
-
-  public byte[] data() {
-    return data_;
-  }
-
-  public Int32() {
-    for (int i = 0; i < 4; i++) {
-      data_[i] = 0;
-    }
-  }
-
-  public Int32(byte[] buf, int offset) {
-    read(buf, offset);
-  }
-
-  public Int32(int value) {
-    set(value);
-  }
-
-  public void set(int value) {
-    intValue_ = value;    
-    data_[0] = (byte)((intValue_ & 0xFF000000L) >> 24);
-    data_[1] = (byte)((intValue_ & 0x00FF0000L) >> 16);
-    data_[2] = (byte)((intValue_ & 0x0000FF00L) >> 8);
-    data_[3] = (byte)((intValue_ & 0x000000FFL));
-  }
-
-  public void read(byte[] buf, int offset) {
-    for (int i = 0; i < 4; i++) {
-      data_[i] = buf[offset+i];
-    }
-
-    int[] bytes = new int[4];
-    bytes[0] = (0x000000FF & ((int)data_[0]));
-    bytes[1] = (0x000000FF & ((int)data_[1]));
-    bytes[2] = (0x000000FF & ((int)data_[2]));
-    bytes[3] = (0x000000FF & ((int)data_[3]));
-    intValue_ = ((int) (bytes[0] << 24 | bytes[1] << 16 |
-                        bytes[2] << 8 | bytes[3]));
-  }
-
-  public String toString() {
-    return String.valueOf(intValue_);
-  }
-
-  public int hashCode() {
-    return intValue_;
-  }
-
-  public boolean equals(Object that) {
-    return ((that instanceof Int32) &&
-            (this.intValue_ == ((Int32) that).intValue_));
-  }
-
-}
diff --git a/lib/java/src/types/Int64.java b/lib/java/src/types/Int64.java
deleted file mode 100644
index 12bef4b..0000000
--- a/lib/java/src/types/Int64.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.facebook.thrift.types;
-
-import java.io.ByteArrayOutputStream;
-
-/**
- * 64-bit integers, just a wrapper around a long, and a byte-order
- * reverser.
- *
- * @author Mark Slee (mcslee@facebook.com)
- *
- */
-public class Int64 {
-  private long longValue_ = 0L;
-  private byte[] data_ = new byte[8];
-
-  public long get() {
-    return longValue_;
-  }
-
-  public byte[] data() {
-    return data_;
-  }
-
-  public Int64() {
-    for (int i = 0; i < 8; i++) data_[i] = (byte) 0;
-  }
-
-  public Int64(long value) {
-    set(value);
-  }
-
-  public Int64(byte[] buf, int offset) {
-    read(buf, offset);
-  }
-
-
-  /**
-   * Yes, this could be done in a loop, but written out this way makes
-   * it easier to see how the bytes are actually generated.
-   */
-  public void set(long value) {
-    longValue_ = value;
-    data_[0] = (byte)((longValue_ & 0xFF00000000000000L) >> 56);
-    data_[1] = (byte)((longValue_ & 0x00FF000000000000L) >> 48);
-    data_[2] = (byte)((longValue_ & 0x0000FF0000000000L) >> 40);
-    data_[3] = (byte)((longValue_ & 0x000000FF00000000L) >> 32);
-    data_[4] = (byte)((longValue_ & 0x00000000FF000000L) >> 24);
-    data_[5] = (byte)((longValue_ & 0x0000000000FF0000L) >> 16);
-    data_[6] = (byte)((longValue_ & 0x000000000000FF00L) >> 8);
-    data_[7] = (byte)((longValue_ & 0x00000000000000FFL));
-  }
-
-  /**
-   * Reverse byte order to calculate the value.
-   */
-  public void read(byte[] buf, int offset) {
-    for (int i = 0; i < 8; i++) {
-      data_[i] = buf[offset+i];
-    }
-
-    long[] bytes = new long[8];
-    bytes[0] = (0xFF & ((long)data_[0]));
-    bytes[1] = (0xFF & ((long)data_[1]));
-    bytes[2] = (0xFF & ((long)data_[2]));
-    bytes[3] = (0xFF & ((long)data_[3]));
-    bytes[4] = (0xFF & ((long)data_[4]));
-    bytes[5] = (0xFF & ((long)data_[5]));
-    bytes[6] = (0xFF & ((long)data_[6]));
-    bytes[7] = (0xFF & ((long)data_[7]));
-
-    longValue_ = ((long) ((bytes[0] << 56) | (bytes[1] << 48) |
-                          (bytes[2] << 40) | (bytes[3] << 32) |
-                          (bytes[4] << 24) | (bytes[5] << 16) |
-                          (bytes[6] << 8)  | (bytes[7])));
-  }
-
-  public String toString() {
-    return String.valueOf(longValue_);
-  }
-
-  public int hashCode() {
-    return (int)longValue_;
-  }
-
-  public boolean equals(Object that) {
-    return ((that instanceof Int64) &&
-            (this.longValue_ == ((Int64) that).longValue_));
-  }
-
-}
diff --git a/lib/java/src/types/UInt32.java b/lib/java/src/types/UInt32.java
deleted file mode 100644
index 52c6da0..0000000
--- a/lib/java/src/types/UInt32.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package com.facebook.thrift.types;
-
-import java.io.ByteArrayOutputStream;
-
-/**
- * Bit-twiddling bullshit because java doesn't have unsigned types.
- * Also, the JVM is big-endian, but Pillar is written on the little
- * endian architecture, and it doesn't translated numbers to network
- * byte order (also big-endian) when it transmits them.
- *
- * So, a UInt32 received by pillar will come over the net in little
- * endian byte order, which means we have to reverse it for Java.
- *
- * @author Mark Slee (mcslee@facebook.com)
- *
- * See: http://darksleep.com/player/JavaAndUnsignedTypes.html
- *
- */
-public class UInt32 {
-  private long longValue_ = 0;
-  private byte[] data_ = new byte[4];
-  
-  public long get() {
-    return longValue_;
-  }
-
-  public int toInt() {
-    return (int) longValue_;
-  }
-
-  public byte[] data() {
-    return data_;
-  }
-
-  public UInt32() {
-    for (int i = 0; i < 4; i++) data_[i] = (byte) 0;
-  }
-
-  public UInt32(byte[] buf, int offset) {
-    read(buf, offset);
-  }
-
-  public UInt32(long value) {
-    set(value);
-  }
-
-  public UInt32(int value) {
-    this((long)value);
-  }
-
-  public void set(long value) {
-    if (value < 0) {
-      throw new RuntimeException("Cannot assign negative value to UInt32.");
-    }
-    longValue_ = value;
-    data_[0] = (byte)((longValue_ & 0xFF000000L) >> 24);
-    data_[1] = (byte)((longValue_ & 0x00FF0000L) >> 16);
-    data_[2] = (byte)((longValue_ & 0x0000FF00L) >> 8);
-    data_[3] = (byte)((longValue_ & 0x000000FFL));
-  }
-
-  public void read(byte[] buf, int offset) {
-    for (int i = 0; i < 4; i++) {
-      data_[i] = buf[offset+i];
-    }
-
-    int[] bytes = new int[4];
-    bytes[0] = (0x000000FF & ((int)data_[0]));
-    bytes[1] = (0x000000FF & ((int)data_[1]));
-    bytes[2] = (0x000000FF & ((int)data_[2]));
-    bytes[3] = (0x000000FF & ((int)data_[3]));
-    longValue_ = ((long) ((bytes[0] << 24) | (bytes[1] << 16) |
-                          (bytes[2] << 8) | (bytes[3]))) & 0xFFFFFFFFL;
-  }
-
-  public String toString() {
-    return String.valueOf(longValue_);
-  }
-
-  public int hashCode() {
-    return toInt();
-  }
-
-  public boolean equals(Object that) {
-    return ((that instanceof UInt32) &&
-            (this.longValue_ == ((UInt32) that).longValue_));
-  }
-
-}
diff --git a/lib/java/src/types/UInt64.java b/lib/java/src/types/UInt64.java
deleted file mode 100644
index 18cf44a..0000000
--- a/lib/java/src/types/UInt64.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package com.facebook.thrift.types;
-
-import java.io.ByteArrayOutputStream;
-
-/**
- * More bit-twiddling bullshit. Take a look at UInt32 for details about
- * the endian difference between Pillar and the JVM.
- *
- * Since we don't do arithmetic on unsigned longs, we just implement
- * them here as a raw byte array. The only caveat is the constructor
- * that takes an integer value. That value will be big-endian (JVM)
- * but the byte array needs to be little-endian (Pillar)
- *
- * @author Mark Slee (mcslee@facebook.com)
- *
- */
-public class UInt64 {
-  private byte[] data_ = new byte[8];
-
-  public byte[] data() {
-    return data_;
-  }
-
-  public UInt64() {
-    for (int i = 0; i < 8; i++) {
-      data_[i] = (byte) 0;
-    }
-  }
-
-  public UInt64(long value) {
-    set(value);
-  }
-
-  public UInt64(byte[] buf, int offset) {
-    read(buf, offset);
-  }
-
-  public long toLong() {
-    long[] bytes = new long[8];
-    bytes[0] = (0xFF & ((long)data_[0]));
-    bytes[1] = (0xFF & ((long)data_[1]));
-    bytes[2] = (0xFF & ((long)data_[2]));
-    bytes[3] = (0xFF & ((long)data_[3]));
-    bytes[4] = (0xFF & ((long)data_[4]));
-    bytes[5] = (0xFF & ((long)data_[5]));
-    bytes[6] = (0xFF & ((long)data_[6]));
-    bytes[7] = (0xFF & ((long)data_[7]));
-
-    return ((long) ((bytes[0] << 56) | (bytes[1] << 48) |
-                    (bytes[2] << 40) | (bytes[3] << 32) |
-                    (bytes[4] << 24) | (bytes[5] << 16) |
-                    (bytes[6] << 8)  | (bytes[7])));
-  }
-
-  /**
-   * "HOLD IT! Pay close attention..." -Prodigy - Out of Space
-   *
-   * This is some wacky business. We want to take the integer value
-   * represented JVM style and put it into an 8-byte array that mirrors
-   * Intel/Pillar endianness (little). To do this, we graduate the
-   * integer to a long and then reverse the byte order, so bytes
-   * 5-8 in the JVM long become bytes 3-0 in the Pillar representation.
-   *
-   * NOTE: value MUST be positive, or else shit gets ill.
-   */
-  public void set(long longValue) {
-    if (longValue < 0) {
-      throw new RuntimeException("Cannot make UInt64 from a negative value.");
-    }
-    data_[0] = (byte)((longValue & 0xFF00000000000000L) >> 56);
-    data_[1] = (byte)((longValue & 0x00FF000000000000L) >> 48);
-    data_[2] = (byte)((longValue & 0x0000FF0000000000L) >> 40);
-    data_[3] = (byte)((longValue & 0x000000FF00000000L) >> 32);
-    data_[4] = (byte)((longValue & 0x00000000FF000000L) >> 24);
-    data_[5] = (byte)((longValue & 0x0000000000FF0000L) >> 16);
-    data_[6] = (byte)((longValue & 0x000000000000FF00L) >> 8);
-    data_[7] = (byte)((longValue & 0x00000000000000FFL));
-  }
-
-  public void read(byte[] buf, int offset) {
-    for (int i = 0; i < 8; i++) {
-      data_[i] = buf[offset+i];
-    }
-  }
-
-  /**
-   * Equivalent to << 8, shifting left by a byte.
-   */
-  public UInt64 lshift() {
-    for (int i = 7; i > 0; i--) {
-      data_[i] = data_[i-1];
-    }
-    data_[0] = (byte) 0;
-    return this;
-  }
-
-  /**
-   * Equivalent to |, logical or across all bytes
-   */
-  public UInt64 lor(UInt64 that) {
-    for (int i = 0; i < 8; i++) {
-      this.data_[i] = (byte) (this.data_[i] | that.data_[i]);
-    }
-    return this;
-  }
-
-  public int hashCode() {
-    return ((0xFF & (int)data_[3]) << 24) |
-           ((0xFF & (int)data_[2]) << 16) |
-           ((0xFF & (int)data_[1]) << 8) |
-           ((0xFF & (int)data_[0]));
-  }
-
-  public boolean equals(Object that) {
-    if (that instanceof UInt64) {
-      for (int i = 0; i < 8; i++) {
-        if (this.data_[i] != ((UInt64)that).data_[i]) {
-          return false;
-        }
-      }
-      return true;
-    }
-    return false;
-  }
-
-}
diff --git a/lib/java/src/types/UInt8.java b/lib/java/src/types/UInt8.java
deleted file mode 100644
index 640a7e1..0000000
--- a/lib/java/src/types/UInt8.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.facebook.thrift.types;
-
-import java.io.ByteArrayOutputStream;
-
-/**
- * WILL IT EVER END? Even 'byte' is signed in Java, so we must use
- * a short to represent bytes. 
- *
- * @author Mark Slee (mcslee@facebook.com)
- *
- */
-public class UInt8 {
-  private short shortValue_;
-  private byte[] data_ = new byte[1];
-  
-  public short get() {
-    return shortValue_;
-  }
-
-  public byte[] data() {
-    return data_;
-  }
-
-  public UInt8() {
-    data_[0] = (byte)0;
-  }
-
-  public UInt8(byte[] buf, int offset) {
-    read(buf, offset);
-  }
-
-  public UInt8(short value) {
-    set(value);
-  }
-
-  public void set(short value) {
-    if (value < 0) throw new RuntimeException("Cannot apply negative value to UInt8");
-    shortValue_ = value;
-    data_[0] = (byte)((shortValue_ & 0x00FF));
-  }
-
-  public void read(byte[] buf, int offset) {
-    data_[0] = buf[offset];
-    shortValue_ = (short) (0x00FF & (short)data_[0]);
-  }
-
-  public String toString() {
-    return String.valueOf(shortValue_);
-  }
-
-  public int hashCode() {
-    return (int)shortValue_;
-  }
-
-  public boolean equals(Object that) {
-    return ((that instanceof UInt8) &&
-            (this.shortValue_ == ((UInt8) that).shortValue_));
-  }
-
-}