http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyExtent.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyExtent.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyExtent.java
index 1136284..d734fc6 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyExtent.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyExtent.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
KeyExtent implements org.apache.thrift.TBase<KeyExtent, KeyExtent._Fields>, 
java.io.Serializable, Cloneable, Comparable<KeyExtent> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class KeyExtent implements org.apache.thrift.TBase<KeyExtent, 
KeyExtent._Fields>, java.io.Serializable, Cloneable, Comparable<KeyExtent> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("KeyExtent");
 
   private static final org.apache.thrift.protocol.TField TABLE_ID_FIELD_DESC = 
new org.apache.thrift.protocol.TField("tableId", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -153,8 +156,8 @@ import org.slf4j.LoggerFactory;
   {
     this();
     this.tableId = tableId;
-    this.endRow = endRow;
-    this.prevEndRow = prevEndRow;
+    this.endRow = org.apache.thrift.TBaseHelper.copyBinary(endRow);
+    this.prevEndRow = org.apache.thrift.TBaseHelper.copyBinary(prevEndRow);
   }
 
   /**
@@ -166,11 +169,9 @@ import org.slf4j.LoggerFactory;
     }
     if (other.isSetEndRow()) {
       this.endRow = org.apache.thrift.TBaseHelper.copyBinary(other.endRow);
-;
     }
     if (other.isSetPrevEndRow()) {
       this.prevEndRow = 
org.apache.thrift.TBaseHelper.copyBinary(other.prevEndRow);
-;
     }
   }
 
@@ -215,16 +216,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ByteBuffer bufferForEndRow() {
-    return endRow;
+    return org.apache.thrift.TBaseHelper.copyBinary(endRow);
   }
 
   public KeyExtent setEndRow(byte[] endRow) {
-    setEndRow(endRow == null ? (ByteBuffer)null : ByteBuffer.wrap(endRow));
+    this.endRow = endRow == null ? (ByteBuffer)null : 
ByteBuffer.wrap(Arrays.copyOf(endRow, endRow.length));
     return this;
   }
 
   public KeyExtent setEndRow(ByteBuffer endRow) {
-    this.endRow = endRow;
+    this.endRow = org.apache.thrift.TBaseHelper.copyBinary(endRow);
     return this;
   }
 
@@ -249,16 +250,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ByteBuffer bufferForPrevEndRow() {
-    return prevEndRow;
+    return org.apache.thrift.TBaseHelper.copyBinary(prevEndRow);
   }
 
   public KeyExtent setPrevEndRow(byte[] prevEndRow) {
-    setPrevEndRow(prevEndRow == null ? (ByteBuffer)null : 
ByteBuffer.wrap(prevEndRow));
+    this.prevEndRow = prevEndRow == null ? (ByteBuffer)null : 
ByteBuffer.wrap(Arrays.copyOf(prevEndRow, prevEndRow.length));
     return this;
   }
 
   public KeyExtent setPrevEndRow(ByteBuffer prevEndRow) {
-    this.prevEndRow = prevEndRow;
+    this.prevEndRow = org.apache.thrift.TBaseHelper.copyBinary(prevEndRow);
     return this;
   }
 
@@ -383,7 +384,24 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_tableId = true && (isSetTableId());
+    list.add(present_tableId);
+    if (present_tableId)
+      list.add(tableId);
+
+    boolean present_endRow = true && (isSetEndRow());
+    list.add(present_endRow);
+    if (present_endRow)
+      list.add(endRow);
+
+    boolean present_prevEndRow = true && (isSetPrevEndRow());
+    list.add(present_prevEndRow);
+    if (present_prevEndRow)
+      list.add(prevEndRow);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValue.java
----------------------------------------------------------------------
diff --git a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValue.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValue.java
index 76d71b5..976fa4b 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValue.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValue.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
KeyValue implements org.apache.thrift.TBase<KeyValue, KeyValue._Fields>, 
java.io.Serializable, Cloneable, Comparable<KeyValue> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class KeyValue implements org.apache.thrift.TBase<KeyValue, 
KeyValue._Fields>, java.io.Serializable, Cloneable, Comparable<KeyValue> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("KeyValue");
 
   private static final org.apache.thrift.protocol.TField KEY_FIELD_DESC = new 
org.apache.thrift.protocol.TField("key", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
@@ -145,7 +148,7 @@ import org.slf4j.LoggerFactory;
   {
     this();
     this.key = key;
-    this.value = value;
+    this.value = org.apache.thrift.TBaseHelper.copyBinary(value);
   }
 
   /**
@@ -157,7 +160,6 @@ import org.slf4j.LoggerFactory;
     }
     if (other.isSetValue()) {
       this.value = org.apache.thrift.TBaseHelper.copyBinary(other.value);
-;
     }
   }
 
@@ -201,16 +203,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ByteBuffer bufferForValue() {
-    return value;
+    return org.apache.thrift.TBaseHelper.copyBinary(value);
   }
 
   public KeyValue setValue(byte[] value) {
-    setValue(value == null ? (ByteBuffer)null : ByteBuffer.wrap(value));
+    this.value = value == null ? (ByteBuffer)null : 
ByteBuffer.wrap(Arrays.copyOf(value, value.length));
     return this;
   }
 
   public KeyValue setValue(ByteBuffer value) {
-    this.value = value;
+    this.value = org.apache.thrift.TBaseHelper.copyBinary(value);
     return this;
   }
 
@@ -313,7 +315,19 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_key = true && (isSetKey());
+    list.add(present_key);
+    if (present_key)
+      list.add(key);
+
+    boolean present_value = true && (isSetValue());
+    list.add(present_value);
+    if (present_value)
+      list.add(value);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValueAndPeek.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValueAndPeek.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValueAndPeek.java
index 88b0c3f..67bd7db 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValueAndPeek.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/KeyValueAndPeek.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
KeyValueAndPeek implements org.apache.thrift.TBase<KeyValueAndPeek, 
KeyValueAndPeek._Fields>, java.io.Serializable, Cloneable, 
Comparable<KeyValueAndPeek> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class KeyValueAndPeek implements 
org.apache.thrift.TBase<KeyValueAndPeek, KeyValueAndPeek._Fields>, 
java.io.Serializable, Cloneable, Comparable<KeyValueAndPeek> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("KeyValueAndPeek");
 
   private static final org.apache.thrift.protocol.TField KEY_VALUE_FIELD_DESC 
= new org.apache.thrift.protocol.TField("keyValue", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
@@ -247,7 +250,7 @@ import org.slf4j.LoggerFactory;
       return getKeyValue();
 
     case HAS_NEXT:
-      return Boolean.valueOf(isHasNext());
+      return isHasNext();
 
     }
     throw new IllegalStateException();
@@ -304,7 +307,19 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_keyValue = true && (isSetKeyValue());
+    list.add(present_keyValue);
+    if (present_keyValue)
+      list.add(keyValue);
+
+    boolean present_hasNext = true;
+    list.add(present_hasNext);
+    if (present_hasNext)
+      list.add(hasNext);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/MutationsRejectedException.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/MutationsRejectedException.java
 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/MutationsRejectedException.java
index e5dfda1..f8e399f 100644
--- 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/MutationsRejectedException.java
+++ 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/MutationsRejectedException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
MutationsRejectedException extends TException implements 
org.apache.thrift.TBase<MutationsRejectedException, 
MutationsRejectedException._Fields>, java.io.Serializable, Cloneable, 
Comparable<MutationsRejectedException> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class MutationsRejectedException extends TException implements 
org.apache.thrift.TBase<MutationsRejectedException, 
MutationsRejectedException._Fields>, java.io.Serializable, Cloneable, 
Comparable<MutationsRejectedException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("MutationsRejectedException");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/NoMoreEntriesException.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/NoMoreEntriesException.java
 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/NoMoreEntriesException.java
index d67bcd2..fcdead7 100644
--- 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/NoMoreEntriesException.java
+++ 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/NoMoreEntriesException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
NoMoreEntriesException extends TException implements 
org.apache.thrift.TBase<NoMoreEntriesException, 
NoMoreEntriesException._Fields>, java.io.Serializable, Cloneable, 
Comparable<NoMoreEntriesException> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class NoMoreEntriesException extends TException implements 
org.apache.thrift.TBase<NoMoreEntriesException, 
NoMoreEntriesException._Fields>, java.io.Serializable, Cloneable, 
Comparable<NoMoreEntriesException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("NoMoreEntriesException");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PartialKey.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PartialKey.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PartialKey.java
index 2a0f269..b03eae9 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PartialKey.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/PartialKey.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/Range.java
----------------------------------------------------------------------
diff --git a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/Range.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/Range.java
index bc66c6b..cc2042e 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/Range.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/Range.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
Range implements org.apache.thrift.TBase<Range, Range._Fields>, 
java.io.Serializable, Cloneable, Comparable<Range> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class Range implements org.apache.thrift.TBase<Range, Range._Fields>, 
java.io.Serializable, Cloneable, Comparable<Range> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("Range");
 
   private static final org.apache.thrift.protocol.TField START_FIELD_DESC = 
new org.apache.thrift.protocol.TField("start", 
org.apache.thrift.protocol.TType.STRUCT, (short)1);
@@ -337,13 +340,13 @@ import org.slf4j.LoggerFactory;
       return getStart();
 
     case START_INCLUSIVE:
-      return Boolean.valueOf(isStartInclusive());
+      return isStartInclusive();
 
     case STOP:
       return getStop();
 
     case STOP_INCLUSIVE:
-      return Boolean.valueOf(isStopInclusive());
+      return isStopInclusive();
 
     }
     throw new IllegalStateException();
@@ -422,7 +425,29 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_start = true && (isSetStart());
+    list.add(present_start);
+    if (present_start)
+      list.add(start);
+
+    boolean present_startInclusive = true;
+    list.add(present_startInclusive);
+    if (present_startInclusive)
+      list.add(startInclusive);
+
+    boolean present_stop = true && (isSetStop());
+    list.add(present_stop);
+    if (present_stop)
+      list.add(stop);
+
+    boolean present_stopInclusive = true;
+    list.add(present_stopInclusive);
+    if (present_stopInclusive)
+      list.add(stopInclusive);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanColumn.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanColumn.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanColumn.java
index 296c885..9b576c4 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanColumn.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanColumn.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
ScanColumn implements org.apache.thrift.TBase<ScanColumn, ScanColumn._Fields>, 
java.io.Serializable, Cloneable, Comparable<ScanColumn> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class ScanColumn implements org.apache.thrift.TBase<ScanColumn, 
ScanColumn._Fields>, java.io.Serializable, Cloneable, Comparable<ScanColumn> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ScanColumn");
 
   private static final org.apache.thrift.protocol.TField COL_FAMILY_FIELD_DESC 
= new org.apache.thrift.protocol.TField("colFamily", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -125,7 +128,7 @@ import org.slf4j.LoggerFactory;
   }
 
   // isset id assignments
-  private _Fields optionals[] = {_Fields.COL_QUALIFIER};
+  private static final _Fields optionals[] = {_Fields.COL_QUALIFIER};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 
metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -144,7 +147,7 @@ import org.slf4j.LoggerFactory;
     ByteBuffer colFamily)
   {
     this();
-    this.colFamily = colFamily;
+    this.colFamily = org.apache.thrift.TBaseHelper.copyBinary(colFamily);
   }
 
   /**
@@ -153,11 +156,9 @@ import org.slf4j.LoggerFactory;
   public ScanColumn(ScanColumn other) {
     if (other.isSetColFamily()) {
       this.colFamily = 
org.apache.thrift.TBaseHelper.copyBinary(other.colFamily);
-;
     }
     if (other.isSetColQualifier()) {
       this.colQualifier = 
org.apache.thrift.TBaseHelper.copyBinary(other.colQualifier);
-;
     }
   }
 
@@ -177,16 +178,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ByteBuffer bufferForColFamily() {
-    return colFamily;
+    return org.apache.thrift.TBaseHelper.copyBinary(colFamily);
   }
 
   public ScanColumn setColFamily(byte[] colFamily) {
-    setColFamily(colFamily == null ? (ByteBuffer)null : 
ByteBuffer.wrap(colFamily));
+    this.colFamily = colFamily == null ? (ByteBuffer)null : 
ByteBuffer.wrap(Arrays.copyOf(colFamily, colFamily.length));
     return this;
   }
 
   public ScanColumn setColFamily(ByteBuffer colFamily) {
-    this.colFamily = colFamily;
+    this.colFamily = org.apache.thrift.TBaseHelper.copyBinary(colFamily);
     return this;
   }
 
@@ -211,16 +212,16 @@ import org.slf4j.LoggerFactory;
   }
 
   public ByteBuffer bufferForColQualifier() {
-    return colQualifier;
+    return org.apache.thrift.TBaseHelper.copyBinary(colQualifier);
   }
 
   public ScanColumn setColQualifier(byte[] colQualifier) {
-    setColQualifier(colQualifier == null ? (ByteBuffer)null : 
ByteBuffer.wrap(colQualifier));
+    this.colQualifier = colQualifier == null ? (ByteBuffer)null : 
ByteBuffer.wrap(Arrays.copyOf(colQualifier, colQualifier.length));
     return this;
   }
 
   public ScanColumn setColQualifier(ByteBuffer colQualifier) {
-    this.colQualifier = colQualifier;
+    this.colQualifier = org.apache.thrift.TBaseHelper.copyBinary(colQualifier);
     return this;
   }
 
@@ -323,7 +324,19 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_colFamily = true && (isSetColFamily());
+    list.add(present_colFamily);
+    if (present_colFamily)
+      list.add(colFamily);
+
+    boolean present_colQualifier = true && (isSetColQualifier());
+    list.add(present_colQualifier);
+    if (present_colQualifier)
+      list.add(colQualifier);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanOptions.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanOptions.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanOptions.java
index 047daa0..ef51216 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanOptions.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanOptions.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
ScanOptions implements org.apache.thrift.TBase<ScanOptions, 
ScanOptions._Fields>, java.io.Serializable, Cloneable, Comparable<ScanOptions> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class ScanOptions implements org.apache.thrift.TBase<ScanOptions, 
ScanOptions._Fields>, java.io.Serializable, Cloneable, Comparable<ScanOptions> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ScanOptions");
 
   private static final org.apache.thrift.protocol.TField 
AUTHORIZATIONS_FIELD_DESC = new 
org.apache.thrift.protocol.TField("authorizations", 
org.apache.thrift.protocol.TType.SET, (short)1);
@@ -142,7 +145,7 @@ import org.slf4j.LoggerFactory;
   // isset id assignments
   private static final int __BUFFERSIZE_ISSET_ID = 0;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = 
{_Fields.AUTHORIZATIONS,_Fields.RANGE,_Fields.COLUMNS,_Fields.ITERATORS,_Fields.BUFFER_SIZE};
+  private static final _Fields optionals[] = 
{_Fields.AUTHORIZATIONS,_Fields.RANGE,_Fields.COLUMNS,_Fields.ITERATORS,_Fields.BUFFER_SIZE};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 
metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -433,7 +436,7 @@ import org.slf4j.LoggerFactory;
       return getIterators();
 
     case BUFFER_SIZE:
-      return Integer.valueOf(getBufferSize());
+      return getBufferSize();
 
     }
     throw new IllegalStateException();
@@ -523,7 +526,34 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_authorizations = true && (isSetAuthorizations());
+    list.add(present_authorizations);
+    if (present_authorizations)
+      list.add(authorizations);
+
+    boolean present_range = true && (isSetRange());
+    list.add(present_range);
+    if (present_range)
+      list.add(range);
+
+    boolean present_columns = true && (isSetColumns());
+    list.add(present_columns);
+    if (present_columns)
+      list.add(columns);
+
+    boolean present_iterators = true && (isSetIterators());
+    list.add(present_iterators);
+    if (present_iterators)
+      list.add(iterators);
+
+    boolean present_bufferSize = true && (isSetBufferSize());
+    list.add(present_bufferSize);
+    if (present_bufferSize)
+      list.add(bufferSize);
+
+    return list.hashCode();
   }
 
   @Override
@@ -609,7 +639,7 @@ import org.slf4j.LoggerFactory;
       if (this.authorizations == null) {
         sb.append("null");
       } else {
-        sb.append(this.authorizations);
+        org.apache.thrift.TBaseHelper.toString(this.authorizations, sb);
       }
       first = false;
     }
@@ -702,11 +732,11 @@ import org.slf4j.LoggerFactory;
               {
                 org.apache.thrift.protocol.TSet _set26 = iprot.readSetBegin();
                 struct.authorizations = new HashSet<ByteBuffer>(2*_set26.size);
-                for (int _i27 = 0; _i27 < _set26.size; ++_i27)
+                ByteBuffer _elem27;
+                for (int _i28 = 0; _i28 < _set26.size; ++_i28)
                 {
-                  ByteBuffer _elem28;
-                  _elem28 = iprot.readBinary();
-                  struct.authorizations.add(_elem28);
+                  _elem27 = iprot.readBinary();
+                  struct.authorizations.add(_elem27);
                 }
                 iprot.readSetEnd();
               }
@@ -729,12 +759,12 @@ import org.slf4j.LoggerFactory;
               {
                 org.apache.thrift.protocol.TList _list29 = 
iprot.readListBegin();
                 struct.columns = new ArrayList<ScanColumn>(_list29.size);
-                for (int _i30 = 0; _i30 < _list29.size; ++_i30)
+                ScanColumn _elem30;
+                for (int _i31 = 0; _i31 < _list29.size; ++_i31)
                 {
-                  ScanColumn _elem31;
-                  _elem31 = new ScanColumn();
-                  _elem31.read(iprot);
-                  struct.columns.add(_elem31);
+                  _elem30 = new ScanColumn();
+                  _elem30.read(iprot);
+                  struct.columns.add(_elem30);
                 }
                 iprot.readListEnd();
               }
@@ -748,12 +778,12 @@ import org.slf4j.LoggerFactory;
               {
                 org.apache.thrift.protocol.TList _list32 = 
iprot.readListBegin();
                 struct.iterators = new 
ArrayList<IteratorSetting>(_list32.size);
-                for (int _i33 = 0; _i33 < _list32.size; ++_i33)
+                IteratorSetting _elem33;
+                for (int _i34 = 0; _i34 < _list32.size; ++_i34)
                 {
-                  IteratorSetting _elem34;
-                  _elem34 = new IteratorSetting();
-                  _elem34.read(iprot);
-                  struct.iterators.add(_elem34);
+                  _elem33 = new IteratorSetting();
+                  _elem33.read(iprot);
+                  struct.iterators.add(_elem33);
                 }
                 iprot.readListEnd();
               }
@@ -916,11 +946,11 @@ import org.slf4j.LoggerFactory;
         {
           org.apache.thrift.protocol.TSet _set41 = new 
org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, 
iprot.readI32());
           struct.authorizations = new HashSet<ByteBuffer>(2*_set41.size);
-          for (int _i42 = 0; _i42 < _set41.size; ++_i42)
+          ByteBuffer _elem42;
+          for (int _i43 = 0; _i43 < _set41.size; ++_i43)
           {
-            ByteBuffer _elem43;
-            _elem43 = iprot.readBinary();
-            struct.authorizations.add(_elem43);
+            _elem42 = iprot.readBinary();
+            struct.authorizations.add(_elem42);
           }
         }
         struct.setAuthorizationsIsSet(true);
@@ -934,12 +964,12 @@ import org.slf4j.LoggerFactory;
         {
           org.apache.thrift.protocol.TList _list44 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
           struct.columns = new ArrayList<ScanColumn>(_list44.size);
-          for (int _i45 = 0; _i45 < _list44.size; ++_i45)
+          ScanColumn _elem45;
+          for (int _i46 = 0; _i46 < _list44.size; ++_i46)
           {
-            ScanColumn _elem46;
-            _elem46 = new ScanColumn();
-            _elem46.read(iprot);
-            struct.columns.add(_elem46);
+            _elem45 = new ScanColumn();
+            _elem45.read(iprot);
+            struct.columns.add(_elem45);
           }
         }
         struct.setColumnsIsSet(true);
@@ -948,12 +978,12 @@ import org.slf4j.LoggerFactory;
         {
           org.apache.thrift.protocol.TList _list47 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
           struct.iterators = new ArrayList<IteratorSetting>(_list47.size);
-          for (int _i48 = 0; _i48 < _list47.size; ++_i48)
+          IteratorSetting _elem48;
+          for (int _i49 = 0; _i49 < _list47.size; ++_i49)
           {
-            IteratorSetting _elem49;
-            _elem49 = new IteratorSetting();
-            _elem49.read(iprot);
-            struct.iterators.add(_elem49);
+            _elem48 = new IteratorSetting();
+            _elem48.read(iprot);
+            struct.iterators.add(_elem48);
           }
         }
         struct.setIteratorsIsSet(true);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanResult.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanResult.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanResult.java
index 3775e7d..f4b7dd3 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanResult.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanResult.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
ScanResult implements org.apache.thrift.TBase<ScanResult, ScanResult._Fields>, 
java.io.Serializable, Cloneable, Comparable<ScanResult> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class ScanResult implements org.apache.thrift.TBase<ScanResult, 
ScanResult._Fields>, java.io.Serializable, Cloneable, Comparable<ScanResult> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("ScanResult");
 
   private static final org.apache.thrift.protocol.TField RESULTS_FIELD_DESC = 
new org.apache.thrift.protocol.TField("results", 
org.apache.thrift.protocol.TType.LIST, (short)1);
@@ -267,7 +270,7 @@ import org.slf4j.LoggerFactory;
       return getResults();
 
     case MORE:
-      return Boolean.valueOf(isMore());
+      return isMore();
 
     }
     throw new IllegalStateException();
@@ -324,7 +327,19 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_results = true && (isSetResults());
+    list.add(present_results);
+    if (present_results)
+      list.add(results);
+
+    boolean present_more = true;
+    list.add(present_more);
+    if (present_more)
+      list.add(more);
+
+    return list.hashCode();
   }
 
   @Override
@@ -436,12 +451,12 @@ import org.slf4j.LoggerFactory;
               {
                 org.apache.thrift.protocol.TList _list8 = 
iprot.readListBegin();
                 struct.results = new ArrayList<KeyValue>(_list8.size);
-                for (int _i9 = 0; _i9 < _list8.size; ++_i9)
+                KeyValue _elem9;
+                for (int _i10 = 0; _i10 < _list8.size; ++_i10)
                 {
-                  KeyValue _elem10;
-                  _elem10 = new KeyValue();
-                  _elem10.read(iprot);
-                  struct.results.add(_elem10);
+                  _elem9 = new KeyValue();
+                  _elem9.read(iprot);
+                  struct.results.add(_elem9);
                 }
                 iprot.readListEnd();
               }
@@ -535,12 +550,12 @@ import org.slf4j.LoggerFactory;
         {
           org.apache.thrift.protocol.TList _list13 = new 
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, 
iprot.readI32());
           struct.results = new ArrayList<KeyValue>(_list13.size);
-          for (int _i14 = 0; _i14 < _list13.size; ++_i14)
+          KeyValue _elem14;
+          for (int _i15 = 0; _i15 < _list13.size; ++_i15)
           {
-            KeyValue _elem15;
-            _elem15 = new KeyValue();
-            _elem15.read(iprot);
-            struct.results.add(_elem15);
+            _elem14 = new KeyValue();
+            _elem14.read(iprot);
+            struct.results.add(_elem14);
           }
         }
         struct.setResultsIsSet(true);

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanState.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanState.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanState.java
index 127d147..8e79212 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanState.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanState.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanType.java
----------------------------------------------------------------------
diff --git a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanType.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanType.java
index f417110..14ac9ce 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanType.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/ScanType.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
index 929b83a..6f4b549 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/SystemPermission.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableExistsException.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableExistsException.java
 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableExistsException.java
index 9e3cf9c..4fd50dc 100644
--- 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableExistsException.java
+++ 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableExistsException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
TableExistsException extends TException implements 
org.apache.thrift.TBase<TableExistsException, TableExistsException._Fields>, 
java.io.Serializable, Cloneable, Comparable<TableExistsException> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class TableExistsException extends TException implements 
org.apache.thrift.TBase<TableExistsException, TableExistsException._Fields>, 
java.io.Serializable, Cloneable, Comparable<TableExistsException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TableExistsException");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableNotFoundException.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableNotFoundException.java
 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableNotFoundException.java
index f12059b..6d27cb1 100644
--- 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableNotFoundException.java
+++ 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TableNotFoundException.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
TableNotFoundException extends TException implements 
org.apache.thrift.TBase<TableNotFoundException, 
TableNotFoundException._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableNotFoundException> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class TableNotFoundException extends TException implements 
org.apache.thrift.TBase<TableNotFoundException, 
TableNotFoundException._Fields>, java.io.Serializable, Cloneable, 
Comparable<TableNotFoundException> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("TableNotFoundException");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TablePermission.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TablePermission.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TablePermission.java
index 04882fa..1beac63 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TablePermission.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TablePermission.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TimeType.java
----------------------------------------------------------------------
diff --git a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TimeType.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TimeType.java
index 32564e0..26565a2 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TimeType.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/TimeType.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownScanner.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownScanner.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownScanner.java
index f6a4b1e..e052ebf 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownScanner.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownScanner.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
UnknownScanner extends TException implements 
org.apache.thrift.TBase<UnknownScanner, UnknownScanner._Fields>, 
java.io.Serializable, Cloneable, Comparable<UnknownScanner> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class UnknownScanner extends TException implements 
org.apache.thrift.TBase<UnknownScanner, UnknownScanner._Fields>, 
java.io.Serializable, Cloneable, Comparable<UnknownScanner> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("UnknownScanner");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownWriter.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownWriter.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownWriter.java
index 661aa1b..270d763 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownWriter.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/UnknownWriter.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
UnknownWriter extends TException implements 
org.apache.thrift.TBase<UnknownWriter, UnknownWriter._Fields>, 
java.io.Serializable, Cloneable, Comparable<UnknownWriter> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class UnknownWriter extends TException implements 
org.apache.thrift.TBase<UnknownWriter, UnknownWriter._Fields>, 
java.io.Serializable, Cloneable, Comparable<UnknownWriter> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("UnknownWriter");
 
   private static final org.apache.thrift.protocol.TField MSG_FIELD_DESC = new 
org.apache.thrift.protocol.TField("msg", 
org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -243,7 +246,14 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_msg = true && (isSetMsg());
+    list.add(present_msg);
+    if (present_msg)
+      list.add(msg);
+
+    return list.hashCode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java
----------------------------------------------------------------------
diff --git 
a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java 
b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java
index 7ecde35..e4d60c5 100644
--- a/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java
+++ b/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.9.1)
+ * Autogenerated by Thrift Compiler (0.9.3)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
@@ -45,10 +45,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@SuppressWarnings({"unchecked", "serial", "rawtypes", "unused"}) public class 
WriterOptions implements org.apache.thrift.TBase<WriterOptions, 
WriterOptions._Fields>, java.io.Serializable, Cloneable, 
Comparable<WriterOptions> {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.3)", date = 
"2015-12-16")
+public class WriterOptions implements org.apache.thrift.TBase<WriterOptions, 
WriterOptions._Fields>, java.io.Serializable, Cloneable, 
Comparable<WriterOptions> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new 
org.apache.thrift.protocol.TStruct("WriterOptions");
 
   private static final org.apache.thrift.protocol.TField MAX_MEMORY_FIELD_DESC 
= new org.apache.thrift.protocol.TField("maxMemory", 
org.apache.thrift.protocol.TType.I64, (short)1);
@@ -153,7 +156,7 @@ import org.slf4j.LoggerFactory;
   private static final int __TIMEOUTMS_ISSET_ID = 2;
   private static final int __THREADS_ISSET_ID = 3;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.DURABILITY};
+  private static final _Fields optionals[] = {_Fields.DURABILITY};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> 
metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new 
EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -394,16 +397,16 @@ import org.slf4j.LoggerFactory;
   public Object getFieldValue(_Fields field) {
     switch (field) {
     case MAX_MEMORY:
-      return Long.valueOf(getMaxMemory());
+      return getMaxMemory();
 
     case LATENCY_MS:
-      return Long.valueOf(getLatencyMs());
+      return getLatencyMs();
 
     case TIMEOUT_MS:
-      return Long.valueOf(getTimeoutMs());
+      return getTimeoutMs();
 
     case THREADS:
-      return Integer.valueOf(getThreads());
+      return getThreads();
 
     case DURABILITY:
       return getDurability();
@@ -496,7 +499,34 @@ import org.slf4j.LoggerFactory;
 
   @Override
   public int hashCode() {
-    return 0;
+    List<Object> list = new ArrayList<Object>();
+
+    boolean present_maxMemory = true;
+    list.add(present_maxMemory);
+    if (present_maxMemory)
+      list.add(maxMemory);
+
+    boolean present_latencyMs = true;
+    list.add(present_latencyMs);
+    if (present_latencyMs)
+      list.add(latencyMs);
+
+    boolean present_timeoutMs = true;
+    list.add(present_timeoutMs);
+    if (present_timeoutMs)
+      list.add(timeoutMs);
+
+    boolean present_threads = true;
+    list.add(present_threads);
+    if (present_threads)
+      list.add(threads);
+
+    boolean present_durability = true && (isSetDurability());
+    list.add(present_durability);
+    if (present_durability)
+      list.add(durability.getValue());
+
+    return list.hashCode();
   }
 
   @Override
@@ -681,7 +711,7 @@ import org.slf4j.LoggerFactory;
             break;
           case 5: // DURABILITY
             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
-              struct.durability = Durability.findByValue(iprot.readI32());
+              struct.durability = 
org.apache.accumulo.proxy.thrift.Durability.findByValue(iprot.readI32());
               struct.setDurabilityIsSet(true);
             } else { 
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, 
schemeField.type);
@@ -793,7 +823,7 @@ import org.slf4j.LoggerFactory;
         struct.setThreadsIsSet(true);
       }
       if (incoming.get(4)) {
-        struct.durability = Durability.findByValue(iprot.readI32());
+        struct.durability = 
org.apache.accumulo.proxy.thrift.Durability.findByValue(iprot.readI32());
         struct.setDurabilityIsSet(true);
       }
     }

http://git-wip-us.apache.org/repos/asf/accumulo/blob/3af75fc6/proxy/src/main/python/AccumuloProxy-remote
----------------------------------------------------------------------
diff --git a/proxy/src/main/python/AccumuloProxy-remote 
b/proxy/src/main/python/AccumuloProxy-remote
index a8d7542..990f708 100644
--- a/proxy/src/main/python/AccumuloProxy-remote
+++ b/proxy/src/main/python/AccumuloProxy-remote
@@ -14,7 +14,7 @@
 # limitations under the License.
 #!/usr/bin/env python
 #
-# Autogenerated by Thrift Compiler (0.9.1)
+# Autogenerated by Thrift Compiler (0.9.3)
 #
 # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 #
@@ -26,6 +26,7 @@ import pprint
 from urlparse import urlparse
 from thrift.transport import TTransport
 from thrift.transport import TSocket
+from thrift.transport import TSSLSocket
 from thrift.transport import THttpClient
 from thrift.protocol import TBinaryProtocol
 
@@ -33,88 +34,88 @@ from accumulo import AccumuloProxy
 from accumulo.ttypes import *
 
 if len(sys.argv) <= 1 or sys.argv[1] == '--help':
-  print ''
-  print 'Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] 
function [arg1 [arg2...]]'
-  print ''
-  print 'Functions:'
-  print '  string login(string principal,  loginProperties)'
-  print '  i32 addConstraint(string login, string tableName, string 
constraintClassName)'
-  print '  void addSplits(string login, string tableName,  splits)'
-  print '  void attachIterator(string login, string tableName, IteratorSetting 
setting,  scopes)'
-  print '  void checkIteratorConflicts(string login, string tableName, 
IteratorSetting setting,  scopes)'
-  print '  void clearLocatorCache(string login, string tableName)'
-  print '  void cloneTable(string login, string tableName, string 
newTableName, bool flush,  propertiesToSet,  propertiesToExclude)'
-  print '  void compactTable(string login, string tableName, string startRow, 
string endRow,  iterators, bool flush, bool wait, CompactionStrategyConfig 
compactionStrategy)'
-  print '  void cancelCompaction(string login, string tableName)'
-  print '  void createTable(string login, string tableName, bool 
versioningIter, TimeType type)'
-  print '  void deleteTable(string login, string tableName)'
-  print '  void deleteRows(string login, string tableName, string startRow, 
string endRow)'
-  print '  void exportTable(string login, string tableName, string exportDir)'
-  print '  void flushTable(string login, string tableName, string startRow, 
string endRow, bool wait)'
-  print '   getDiskUsage(string login,  tables)'
-  print '   getLocalityGroups(string login, string tableName)'
-  print '  IteratorSetting getIteratorSetting(string login, string tableName, 
string iteratorName, IteratorScope scope)'
-  print '  string getMaxRow(string login, string tableName,  auths, string 
startRow, bool startInclusive, string endRow, bool endInclusive)'
-  print '   getTableProperties(string login, string tableName)'
-  print '  void importDirectory(string login, string tableName, string 
importDir, string failureDir, bool setTime)'
-  print '  void importTable(string login, string tableName, string importDir)'
-  print '   listSplits(string login, string tableName, i32 maxSplits)'
-  print '   listTables(string login)'
-  print '   listIterators(string login, string tableName)'
-  print '   listConstraints(string login, string tableName)'
-  print '  void mergeTablets(string login, string tableName, string startRow, 
string endRow)'
-  print '  void offlineTable(string login, string tableName, bool wait)'
-  print '  void onlineTable(string login, string tableName, bool wait)'
-  print '  void removeConstraint(string login, string tableName, i32 
constraint)'
-  print '  void removeIterator(string login, string tableName, string 
iterName,  scopes)'
-  print '  void removeTableProperty(string login, string tableName, string 
property)'
-  print '  void renameTable(string login, string oldTableName, string 
newTableName)'
-  print '  void setLocalityGroups(string login, string tableName,  groups)'
-  print '  void setTableProperty(string login, string tableName, string 
property, string value)'
-  print '   splitRangeByTablets(string login, string tableName, Range range, 
i32 maxSplits)'
-  print '  bool tableExists(string login, string tableName)'
-  print '   tableIdMap(string login)'
-  print '  bool testTableClassLoad(string login, string tableName, string 
className, string asTypeName)'
-  print '  void pingTabletServer(string login, string tserver)'
-  print '   getActiveScans(string login, string tserver)'
-  print '   getActiveCompactions(string login, string tserver)'
-  print '   getSiteConfiguration(string login)'
-  print '   getSystemConfiguration(string login)'
-  print '   getTabletServers(string login)'
-  print '  void removeProperty(string login, string property)'
-  print '  void setProperty(string login, string property, string value)'
-  print '  bool testClassLoad(string login, string className, string 
asTypeName)'
-  print '  bool authenticateUser(string login, string user,  properties)'
-  print '  void changeUserAuthorizations(string login, string user,  
authorizations)'
-  print '  void changeLocalUserPassword(string login, string user, string 
password)'
-  print '  void createLocalUser(string login, string user, string password)'
-  print '  void dropLocalUser(string login, string user)'
-  print '   getUserAuthorizations(string login, string user)'
-  print '  void grantSystemPermission(string login, string user, 
SystemPermission perm)'
-  print '  void grantTablePermission(string login, string user, string table, 
TablePermission perm)'
-  print '  bool hasSystemPermission(string login, string user, 
SystemPermission perm)'
-  print '  bool hasTablePermission(string login, string user, string table, 
TablePermission perm)'
-  print '   listLocalUsers(string login)'
-  print '  void revokeSystemPermission(string login, string user, 
SystemPermission perm)'
-  print '  void revokeTablePermission(string login, string user, string table, 
TablePermission perm)'
-  print '  string createBatchScanner(string login, string tableName, 
BatchScanOptions options)'
-  print '  string createScanner(string login, string tableName, ScanOptions 
options)'
-  print '  bool hasNext(string scanner)'
-  print '  KeyValueAndPeek nextEntry(string scanner)'
-  print '  ScanResult nextK(string scanner, i32 k)'
-  print '  void closeScanner(string scanner)'
-  print '  void updateAndFlush(string login, string tableName,  cells)'
-  print '  string createWriter(string login, string tableName, WriterOptions 
opts)'
-  print '  void update(string writer,  cells)'
-  print '  void flush(string writer)'
-  print '  void closeWriter(string writer)'
-  print '  ConditionalStatus updateRowConditionally(string login, string 
tableName, string row, ConditionalUpdates updates)'
-  print '  string createConditionalWriter(string login, string tableName, 
ConditionalWriterOptions options)'
-  print '   updateRowsConditionally(string conditionalWriter,  updates)'
-  print '  void closeConditionalWriter(string conditionalWriter)'
-  print '  Range getRowRange(string row)'
-  print '  Key getFollowing(Key key, PartialKey part)'
-  print ''
+  print('')
+  print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] 
[-s[sl]] function [arg1 [arg2...]]')
+  print('')
+  print('Functions:')
+  print('  string login(string principal,  loginProperties)')
+  print('  i32 addConstraint(string login, string tableName, string 
constraintClassName)')
+  print('  void addSplits(string login, string tableName,  splits)')
+  print('  void attachIterator(string login, string tableName, IteratorSetting 
setting,  scopes)')
+  print('  void checkIteratorConflicts(string login, string tableName, 
IteratorSetting setting,  scopes)')
+  print('  void clearLocatorCache(string login, string tableName)')
+  print('  void cloneTable(string login, string tableName, string 
newTableName, bool flush,  propertiesToSet,  propertiesToExclude)')
+  print('  void compactTable(string login, string tableName, string startRow, 
string endRow,  iterators, bool flush, bool wait, CompactionStrategyConfig 
compactionStrategy)')
+  print('  void cancelCompaction(string login, string tableName)')
+  print('  void createTable(string login, string tableName, bool 
versioningIter, TimeType type)')
+  print('  void deleteTable(string login, string tableName)')
+  print('  void deleteRows(string login, string tableName, string startRow, 
string endRow)')
+  print('  void exportTable(string login, string tableName, string exportDir)')
+  print('  void flushTable(string login, string tableName, string startRow, 
string endRow, bool wait)')
+  print('   getDiskUsage(string login,  tables)')
+  print('   getLocalityGroups(string login, string tableName)')
+  print('  IteratorSetting getIteratorSetting(string login, string tableName, 
string iteratorName, IteratorScope scope)')
+  print('  string getMaxRow(string login, string tableName,  auths, string 
startRow, bool startInclusive, string endRow, bool endInclusive)')
+  print('   getTableProperties(string login, string tableName)')
+  print('  void importDirectory(string login, string tableName, string 
importDir, string failureDir, bool setTime)')
+  print('  void importTable(string login, string tableName, string importDir)')
+  print('   listSplits(string login, string tableName, i32 maxSplits)')
+  print('   listTables(string login)')
+  print('   listIterators(string login, string tableName)')
+  print('   listConstraints(string login, string tableName)')
+  print('  void mergeTablets(string login, string tableName, string startRow, 
string endRow)')
+  print('  void offlineTable(string login, string tableName, bool wait)')
+  print('  void onlineTable(string login, string tableName, bool wait)')
+  print('  void removeConstraint(string login, string tableName, i32 
constraint)')
+  print('  void removeIterator(string login, string tableName, string 
iterName,  scopes)')
+  print('  void removeTableProperty(string login, string tableName, string 
property)')
+  print('  void renameTable(string login, string oldTableName, string 
newTableName)')
+  print('  void setLocalityGroups(string login, string tableName,  groups)')
+  print('  void setTableProperty(string login, string tableName, string 
property, string value)')
+  print('   splitRangeByTablets(string login, string tableName, Range range, 
i32 maxSplits)')
+  print('  bool tableExists(string login, string tableName)')
+  print('   tableIdMap(string login)')
+  print('  bool testTableClassLoad(string login, string tableName, string 
className, string asTypeName)')
+  print('  void pingTabletServer(string login, string tserver)')
+  print('   getActiveScans(string login, string tserver)')
+  print('   getActiveCompactions(string login, string tserver)')
+  print('   getSiteConfiguration(string login)')
+  print('   getSystemConfiguration(string login)')
+  print('   getTabletServers(string login)')
+  print('  void removeProperty(string login, string property)')
+  print('  void setProperty(string login, string property, string value)')
+  print('  bool testClassLoad(string login, string className, string 
asTypeName)')
+  print('  bool authenticateUser(string login, string user,  properties)')
+  print('  void changeUserAuthorizations(string login, string user,  
authorizations)')
+  print('  void changeLocalUserPassword(string login, string user, string 
password)')
+  print('  void createLocalUser(string login, string user, string password)')
+  print('  void dropLocalUser(string login, string user)')
+  print('   getUserAuthorizations(string login, string user)')
+  print('  void grantSystemPermission(string login, string user, 
SystemPermission perm)')
+  print('  void grantTablePermission(string login, string user, string table, 
TablePermission perm)')
+  print('  bool hasSystemPermission(string login, string user, 
SystemPermission perm)')
+  print('  bool hasTablePermission(string login, string user, string table, 
TablePermission perm)')
+  print('   listLocalUsers(string login)')
+  print('  void revokeSystemPermission(string login, string user, 
SystemPermission perm)')
+  print('  void revokeTablePermission(string login, string user, string table, 
TablePermission perm)')
+  print('  string createBatchScanner(string login, string tableName, 
BatchScanOptions options)')
+  print('  string createScanner(string login, string tableName, ScanOptions 
options)')
+  print('  bool hasNext(string scanner)')
+  print('  KeyValueAndPeek nextEntry(string scanner)')
+  print('  ScanResult nextK(string scanner, i32 k)')
+  print('  void closeScanner(string scanner)')
+  print('  void updateAndFlush(string login, string tableName,  cells)')
+  print('  string createWriter(string login, string tableName, WriterOptions 
opts)')
+  print('  void update(string writer,  cells)')
+  print('  void flush(string writer)')
+  print('  void closeWriter(string writer)')
+  print('  ConditionalStatus updateRowConditionally(string login, string 
tableName, string row, ConditionalUpdates updates)')
+  print('  string createConditionalWriter(string login, string tableName, 
ConditionalWriterOptions options)')
+  print('   updateRowsConditionally(string conditionalWriter,  updates)')
+  print('  void closeConditionalWriter(string conditionalWriter)')
+  print('  Range getRowRange(string row)')
+  print('  Key getFollowing(Key key, PartialKey part)')
+  print('')
   sys.exit(0)
 
 pp = pprint.PrettyPrinter(indent = 2)
@@ -122,6 +123,7 @@ host = 'localhost'
 port = 9090
 uri = ''
 framed = False
+ssl = False
 http = False
 argi = 1
 
@@ -150,13 +152,17 @@ if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed':
   framed = True
   argi += 1
 
+if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl':
+  ssl = True
+  argi += 1
+
 cmd = sys.argv[argi]
 args = sys.argv[argi+1:]
 
 if http:
   transport = THttpClient.THttpClient(host, port, uri)
 else:
-  socket = TSocket.TSocket(host, port)
+  socket = TSSLSocket.TSSLSocket(host, port, validate=False) if ssl else 
TSocket.TSocket(host, port)
   if framed:
     transport = TTransport.TFramedTransport(socket)
   else:
@@ -167,468 +173,468 @@ transport.open()
 
 if cmd == 'login':
   if len(args) != 2:
-    print 'login requires 2 args'
+    print('login requires 2 args')
     sys.exit(1)
   pp.pprint(client.login(args[0],eval(args[1]),))
 
 elif cmd == 'addConstraint':
   if len(args) != 3:
-    print 'addConstraint requires 3 args'
+    print('addConstraint requires 3 args')
     sys.exit(1)
   pp.pprint(client.addConstraint(args[0],args[1],args[2],))
 
 elif cmd == 'addSplits':
   if len(args) != 3:
-    print 'addSplits requires 3 args'
+    print('addSplits requires 3 args')
     sys.exit(1)
   pp.pprint(client.addSplits(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'attachIterator':
   if len(args) != 4:
-    print 'attachIterator requires 4 args'
+    print('attachIterator requires 4 args')
     sys.exit(1)
   
pp.pprint(client.attachIterator(args[0],args[1],eval(args[2]),eval(args[3]),))
 
 elif cmd == 'checkIteratorConflicts':
   if len(args) != 4:
-    print 'checkIteratorConflicts requires 4 args'
+    print('checkIteratorConflicts requires 4 args')
     sys.exit(1)
   
pp.pprint(client.checkIteratorConflicts(args[0],args[1],eval(args[2]),eval(args[3]),))
 
 elif cmd == 'clearLocatorCache':
   if len(args) != 2:
-    print 'clearLocatorCache requires 2 args'
+    print('clearLocatorCache requires 2 args')
     sys.exit(1)
   pp.pprint(client.clearLocatorCache(args[0],args[1],))
 
 elif cmd == 'cloneTable':
   if len(args) != 6:
-    print 'cloneTable requires 6 args'
+    print('cloneTable requires 6 args')
     sys.exit(1)
   
pp.pprint(client.cloneTable(args[0],args[1],args[2],eval(args[3]),eval(args[4]),eval(args[5]),))
 
 elif cmd == 'compactTable':
   if len(args) != 8:
-    print 'compactTable requires 8 args'
+    print('compactTable requires 8 args')
     sys.exit(1)
   
pp.pprint(client.compactTable(args[0],args[1],args[2],args[3],eval(args[4]),eval(args[5]),eval(args[6]),eval(args[7]),))
 
 elif cmd == 'cancelCompaction':
   if len(args) != 2:
-    print 'cancelCompaction requires 2 args'
+    print('cancelCompaction requires 2 args')
     sys.exit(1)
   pp.pprint(client.cancelCompaction(args[0],args[1],))
 
 elif cmd == 'createTable':
   if len(args) != 4:
-    print 'createTable requires 4 args'
+    print('createTable requires 4 args')
     sys.exit(1)
   pp.pprint(client.createTable(args[0],args[1],eval(args[2]),eval(args[3]),))
 
 elif cmd == 'deleteTable':
   if len(args) != 2:
-    print 'deleteTable requires 2 args'
+    print('deleteTable requires 2 args')
     sys.exit(1)
   pp.pprint(client.deleteTable(args[0],args[1],))
 
 elif cmd == 'deleteRows':
   if len(args) != 4:
-    print 'deleteRows requires 4 args'
+    print('deleteRows requires 4 args')
     sys.exit(1)
   pp.pprint(client.deleteRows(args[0],args[1],args[2],args[3],))
 
 elif cmd == 'exportTable':
   if len(args) != 3:
-    print 'exportTable requires 3 args'
+    print('exportTable requires 3 args')
     sys.exit(1)
   pp.pprint(client.exportTable(args[0],args[1],args[2],))
 
 elif cmd == 'flushTable':
   if len(args) != 5:
-    print 'flushTable requires 5 args'
+    print('flushTable requires 5 args')
     sys.exit(1)
   pp.pprint(client.flushTable(args[0],args[1],args[2],args[3],eval(args[4]),))
 
 elif cmd == 'getDiskUsage':
   if len(args) != 2:
-    print 'getDiskUsage requires 2 args'
+    print('getDiskUsage requires 2 args')
     sys.exit(1)
   pp.pprint(client.getDiskUsage(args[0],eval(args[1]),))
 
 elif cmd == 'getLocalityGroups':
   if len(args) != 2:
-    print 'getLocalityGroups requires 2 args'
+    print('getLocalityGroups requires 2 args')
     sys.exit(1)
   pp.pprint(client.getLocalityGroups(args[0],args[1],))
 
 elif cmd == 'getIteratorSetting':
   if len(args) != 4:
-    print 'getIteratorSetting requires 4 args'
+    print('getIteratorSetting requires 4 args')
     sys.exit(1)
   pp.pprint(client.getIteratorSetting(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'getMaxRow':
   if len(args) != 7:
-    print 'getMaxRow requires 7 args'
+    print('getMaxRow requires 7 args')
     sys.exit(1)
   
pp.pprint(client.getMaxRow(args[0],args[1],eval(args[2]),args[3],eval(args[4]),args[5],eval(args[6]),))
 
 elif cmd == 'getTableProperties':
   if len(args) != 2:
-    print 'getTableProperties requires 2 args'
+    print('getTableProperties requires 2 args')
     sys.exit(1)
   pp.pprint(client.getTableProperties(args[0],args[1],))
 
 elif cmd == 'importDirectory':
   if len(args) != 5:
-    print 'importDirectory requires 5 args'
+    print('importDirectory requires 5 args')
     sys.exit(1)
   
pp.pprint(client.importDirectory(args[0],args[1],args[2],args[3],eval(args[4]),))
 
 elif cmd == 'importTable':
   if len(args) != 3:
-    print 'importTable requires 3 args'
+    print('importTable requires 3 args')
     sys.exit(1)
   pp.pprint(client.importTable(args[0],args[1],args[2],))
 
 elif cmd == 'listSplits':
   if len(args) != 3:
-    print 'listSplits requires 3 args'
+    print('listSplits requires 3 args')
     sys.exit(1)
   pp.pprint(client.listSplits(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'listTables':
   if len(args) != 1:
-    print 'listTables requires 1 args'
+    print('listTables requires 1 args')
     sys.exit(1)
   pp.pprint(client.listTables(args[0],))
 
 elif cmd == 'listIterators':
   if len(args) != 2:
-    print 'listIterators requires 2 args'
+    print('listIterators requires 2 args')
     sys.exit(1)
   pp.pprint(client.listIterators(args[0],args[1],))
 
 elif cmd == 'listConstraints':
   if len(args) != 2:
-    print 'listConstraints requires 2 args'
+    print('listConstraints requires 2 args')
     sys.exit(1)
   pp.pprint(client.listConstraints(args[0],args[1],))
 
 elif cmd == 'mergeTablets':
   if len(args) != 4:
-    print 'mergeTablets requires 4 args'
+    print('mergeTablets requires 4 args')
     sys.exit(1)
   pp.pprint(client.mergeTablets(args[0],args[1],args[2],args[3],))
 
 elif cmd == 'offlineTable':
   if len(args) != 3:
-    print 'offlineTable requires 3 args'
+    print('offlineTable requires 3 args')
     sys.exit(1)
   pp.pprint(client.offlineTable(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'onlineTable':
   if len(args) != 3:
-    print 'onlineTable requires 3 args'
+    print('onlineTable requires 3 args')
     sys.exit(1)
   pp.pprint(client.onlineTable(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'removeConstraint':
   if len(args) != 3:
-    print 'removeConstraint requires 3 args'
+    print('removeConstraint requires 3 args')
     sys.exit(1)
   pp.pprint(client.removeConstraint(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'removeIterator':
   if len(args) != 4:
-    print 'removeIterator requires 4 args'
+    print('removeIterator requires 4 args')
     sys.exit(1)
   pp.pprint(client.removeIterator(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'removeTableProperty':
   if len(args) != 3:
-    print 'removeTableProperty requires 3 args'
+    print('removeTableProperty requires 3 args')
     sys.exit(1)
   pp.pprint(client.removeTableProperty(args[0],args[1],args[2],))
 
 elif cmd == 'renameTable':
   if len(args) != 3:
-    print 'renameTable requires 3 args'
+    print('renameTable requires 3 args')
     sys.exit(1)
   pp.pprint(client.renameTable(args[0],args[1],args[2],))
 
 elif cmd == 'setLocalityGroups':
   if len(args) != 3:
-    print 'setLocalityGroups requires 3 args'
+    print('setLocalityGroups requires 3 args')
     sys.exit(1)
   pp.pprint(client.setLocalityGroups(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'setTableProperty':
   if len(args) != 4:
-    print 'setTableProperty requires 4 args'
+    print('setTableProperty requires 4 args')
     sys.exit(1)
   pp.pprint(client.setTableProperty(args[0],args[1],args[2],args[3],))
 
 elif cmd == 'splitRangeByTablets':
   if len(args) != 4:
-    print 'splitRangeByTablets requires 4 args'
+    print('splitRangeByTablets requires 4 args')
     sys.exit(1)
   
pp.pprint(client.splitRangeByTablets(args[0],args[1],eval(args[2]),eval(args[3]),))
 
 elif cmd == 'tableExists':
   if len(args) != 2:
-    print 'tableExists requires 2 args'
+    print('tableExists requires 2 args')
     sys.exit(1)
   pp.pprint(client.tableExists(args[0],args[1],))
 
 elif cmd == 'tableIdMap':
   if len(args) != 1:
-    print 'tableIdMap requires 1 args'
+    print('tableIdMap requires 1 args')
     sys.exit(1)
   pp.pprint(client.tableIdMap(args[0],))
 
 elif cmd == 'testTableClassLoad':
   if len(args) != 4:
-    print 'testTableClassLoad requires 4 args'
+    print('testTableClassLoad requires 4 args')
     sys.exit(1)
   pp.pprint(client.testTableClassLoad(args[0],args[1],args[2],args[3],))
 
 elif cmd == 'pingTabletServer':
   if len(args) != 2:
-    print 'pingTabletServer requires 2 args'
+    print('pingTabletServer requires 2 args')
     sys.exit(1)
   pp.pprint(client.pingTabletServer(args[0],args[1],))
 
 elif cmd == 'getActiveScans':
   if len(args) != 2:
-    print 'getActiveScans requires 2 args'
+    print('getActiveScans requires 2 args')
     sys.exit(1)
   pp.pprint(client.getActiveScans(args[0],args[1],))
 
 elif cmd == 'getActiveCompactions':
   if len(args) != 2:
-    print 'getActiveCompactions requires 2 args'
+    print('getActiveCompactions requires 2 args')
     sys.exit(1)
   pp.pprint(client.getActiveCompactions(args[0],args[1],))
 
 elif cmd == 'getSiteConfiguration':
   if len(args) != 1:
-    print 'getSiteConfiguration requires 1 args'
+    print('getSiteConfiguration requires 1 args')
     sys.exit(1)
   pp.pprint(client.getSiteConfiguration(args[0],))
 
 elif cmd == 'getSystemConfiguration':
   if len(args) != 1:
-    print 'getSystemConfiguration requires 1 args'
+    print('getSystemConfiguration requires 1 args')
     sys.exit(1)
   pp.pprint(client.getSystemConfiguration(args[0],))
 
 elif cmd == 'getTabletServers':
   if len(args) != 1:
-    print 'getTabletServers requires 1 args'
+    print('getTabletServers requires 1 args')
     sys.exit(1)
   pp.pprint(client.getTabletServers(args[0],))
 
 elif cmd == 'removeProperty':
   if len(args) != 2:
-    print 'removeProperty requires 2 args'
+    print('removeProperty requires 2 args')
     sys.exit(1)
   pp.pprint(client.removeProperty(args[0],args[1],))
 
 elif cmd == 'setProperty':
   if len(args) != 3:
-    print 'setProperty requires 3 args'
+    print('setProperty requires 3 args')
     sys.exit(1)
   pp.pprint(client.setProperty(args[0],args[1],args[2],))
 
 elif cmd == 'testClassLoad':
   if len(args) != 3:
-    print 'testClassLoad requires 3 args'
+    print('testClassLoad requires 3 args')
     sys.exit(1)
   pp.pprint(client.testClassLoad(args[0],args[1],args[2],))
 
 elif cmd == 'authenticateUser':
   if len(args) != 3:
-    print 'authenticateUser requires 3 args'
+    print('authenticateUser requires 3 args')
     sys.exit(1)
   pp.pprint(client.authenticateUser(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'changeUserAuthorizations':
   if len(args) != 3:
-    print 'changeUserAuthorizations requires 3 args'
+    print('changeUserAuthorizations requires 3 args')
     sys.exit(1)
   pp.pprint(client.changeUserAuthorizations(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'changeLocalUserPassword':
   if len(args) != 3:
-    print 'changeLocalUserPassword requires 3 args'
+    print('changeLocalUserPassword requires 3 args')
     sys.exit(1)
   pp.pprint(client.changeLocalUserPassword(args[0],args[1],args[2],))
 
 elif cmd == 'createLocalUser':
   if len(args) != 3:
-    print 'createLocalUser requires 3 args'
+    print('createLocalUser requires 3 args')
     sys.exit(1)
   pp.pprint(client.createLocalUser(args[0],args[1],args[2],))
 
 elif cmd == 'dropLocalUser':
   if len(args) != 2:
-    print 'dropLocalUser requires 2 args'
+    print('dropLocalUser requires 2 args')
     sys.exit(1)
   pp.pprint(client.dropLocalUser(args[0],args[1],))
 
 elif cmd == 'getUserAuthorizations':
   if len(args) != 2:
-    print 'getUserAuthorizations requires 2 args'
+    print('getUserAuthorizations requires 2 args')
     sys.exit(1)
   pp.pprint(client.getUserAuthorizations(args[0],args[1],))
 
 elif cmd == 'grantSystemPermission':
   if len(args) != 3:
-    print 'grantSystemPermission requires 3 args'
+    print('grantSystemPermission requires 3 args')
     sys.exit(1)
   pp.pprint(client.grantSystemPermission(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'grantTablePermission':
   if len(args) != 4:
-    print 'grantTablePermission requires 4 args'
+    print('grantTablePermission requires 4 args')
     sys.exit(1)
   
pp.pprint(client.grantTablePermission(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'hasSystemPermission':
   if len(args) != 3:
-    print 'hasSystemPermission requires 3 args'
+    print('hasSystemPermission requires 3 args')
     sys.exit(1)
   pp.pprint(client.hasSystemPermission(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'hasTablePermission':
   if len(args) != 4:
-    print 'hasTablePermission requires 4 args'
+    print('hasTablePermission requires 4 args')
     sys.exit(1)
   pp.pprint(client.hasTablePermission(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'listLocalUsers':
   if len(args) != 1:
-    print 'listLocalUsers requires 1 args'
+    print('listLocalUsers requires 1 args')
     sys.exit(1)
   pp.pprint(client.listLocalUsers(args[0],))
 
 elif cmd == 'revokeSystemPermission':
   if len(args) != 3:
-    print 'revokeSystemPermission requires 3 args'
+    print('revokeSystemPermission requires 3 args')
     sys.exit(1)
   pp.pprint(client.revokeSystemPermission(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'revokeTablePermission':
   if len(args) != 4:
-    print 'revokeTablePermission requires 4 args'
+    print('revokeTablePermission requires 4 args')
     sys.exit(1)
   
pp.pprint(client.revokeTablePermission(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'createBatchScanner':
   if len(args) != 3:
-    print 'createBatchScanner requires 3 args'
+    print('createBatchScanner requires 3 args')
     sys.exit(1)
   pp.pprint(client.createBatchScanner(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'createScanner':
   if len(args) != 3:
-    print 'createScanner requires 3 args'
+    print('createScanner requires 3 args')
     sys.exit(1)
   pp.pprint(client.createScanner(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'hasNext':
   if len(args) != 1:
-    print 'hasNext requires 1 args'
+    print('hasNext requires 1 args')
     sys.exit(1)
   pp.pprint(client.hasNext(args[0],))
 
 elif cmd == 'nextEntry':
   if len(args) != 1:
-    print 'nextEntry requires 1 args'
+    print('nextEntry requires 1 args')
     sys.exit(1)
   pp.pprint(client.nextEntry(args[0],))
 
 elif cmd == 'nextK':
   if len(args) != 2:
-    print 'nextK requires 2 args'
+    print('nextK requires 2 args')
     sys.exit(1)
   pp.pprint(client.nextK(args[0],eval(args[1]),))
 
 elif cmd == 'closeScanner':
   if len(args) != 1:
-    print 'closeScanner requires 1 args'
+    print('closeScanner requires 1 args')
     sys.exit(1)
   pp.pprint(client.closeScanner(args[0],))
 
 elif cmd == 'updateAndFlush':
   if len(args) != 3:
-    print 'updateAndFlush requires 3 args'
+    print('updateAndFlush requires 3 args')
     sys.exit(1)
   pp.pprint(client.updateAndFlush(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'createWriter':
   if len(args) != 3:
-    print 'createWriter requires 3 args'
+    print('createWriter requires 3 args')
     sys.exit(1)
   pp.pprint(client.createWriter(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'update':
   if len(args) != 2:
-    print 'update requires 2 args'
+    print('update requires 2 args')
     sys.exit(1)
   pp.pprint(client.update(args[0],eval(args[1]),))
 
 elif cmd == 'flush':
   if len(args) != 1:
-    print 'flush requires 1 args'
+    print('flush requires 1 args')
     sys.exit(1)
   pp.pprint(client.flush(args[0],))
 
 elif cmd == 'closeWriter':
   if len(args) != 1:
-    print 'closeWriter requires 1 args'
+    print('closeWriter requires 1 args')
     sys.exit(1)
   pp.pprint(client.closeWriter(args[0],))
 
 elif cmd == 'updateRowConditionally':
   if len(args) != 4:
-    print 'updateRowConditionally requires 4 args'
+    print('updateRowConditionally requires 4 args')
     sys.exit(1)
   
pp.pprint(client.updateRowConditionally(args[0],args[1],args[2],eval(args[3]),))
 
 elif cmd == 'createConditionalWriter':
   if len(args) != 3:
-    print 'createConditionalWriter requires 3 args'
+    print('createConditionalWriter requires 3 args')
     sys.exit(1)
   pp.pprint(client.createConditionalWriter(args[0],args[1],eval(args[2]),))
 
 elif cmd == 'updateRowsConditionally':
   if len(args) != 2:
-    print 'updateRowsConditionally requires 2 args'
+    print('updateRowsConditionally requires 2 args')
     sys.exit(1)
   pp.pprint(client.updateRowsConditionally(args[0],eval(args[1]),))
 
 elif cmd == 'closeConditionalWriter':
   if len(args) != 1:
-    print 'closeConditionalWriter requires 1 args'
+    print('closeConditionalWriter requires 1 args')
     sys.exit(1)
   pp.pprint(client.closeConditionalWriter(args[0],))
 
 elif cmd == 'getRowRange':
   if len(args) != 1:
-    print 'getRowRange requires 1 args'
+    print('getRowRange requires 1 args')
     sys.exit(1)
   pp.pprint(client.getRowRange(args[0],))
 
 elif cmd == 'getFollowing':
   if len(args) != 2:
-    print 'getFollowing requires 2 args'
+    print('getFollowing requires 2 args')
     sys.exit(1)
   pp.pprint(client.getFollowing(eval(args[0]),eval(args[1]),))
 
 else:
-  print 'Unrecognized method %s' % cmd
+  print('Unrecognized method %s' % cmd)
   sys.exit(1)
 
 transport.close()

Reply via email to