Index: src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java (revision 1325050) +++ src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java (working copy) @@ -59,7 +59,7 @@ @RunWith(Parameterized.class) public class TestThriftServerCmdLine { - public static final Log LOG = + public static final Log LOG = LogFactory.getLog(TestThriftServerCmdLine.class); private final ImplType implType; @@ -72,7 +72,7 @@ private Thread cmdLineThread; private volatile Exception cmdLineException; - + private Exception clientSideException; private ThriftServer thriftServer; @@ -139,7 +139,7 @@ cmdLineThread.start(); } - @Test(timeout=30 * 1000) + @Test(timeout=60 * 1000) public void testRunThriftServer() throws Exception { List args = new ArrayList(); if (implType != null) { @@ -204,6 +204,7 @@ Hbase.Client client = new Hbase.Client(prot); TestThriftServer.doTestTableCreateDrop(client); TestThriftServer.doTestGetTableRegions(client); + TestThriftServer.doTestTableMutations(client); } finally { sock.close(); } Index: src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java (revision 1325050) +++ src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java (working copy) @@ -203,9 +203,13 @@ * @throws Exception */ public void doTestTableMutations() throws Exception { - // Setup ThriftServerRunner.HBaseHandler handler = new ThriftServerRunner.HBaseHandler(UTIL.getConfiguration()); + doTestTableMutations(handler); + } + + public static void doTestTableMutations(Hbase.Iface handler) throws Exception { + // Setup handler.createTable(tableAname, getColumnDescriptors()); // Apply a few Mutations to rowA @@ -261,7 +265,7 @@ handler.mutateRow(tableAname, rowAname, mutations, null); TRowResult rowResult3 = handler.getRow(tableAname, rowAname, null).get(0); assertEquals(rowAname, rowResult3.row); - assertEquals(0, rowResult3.columns.get(columnAname).value.array().length); + assertEquals(0, rowResult3.columns.get(columnAname).value.remaining()); // Teardown handler.disableTable(tableAname); @@ -497,7 +501,7 @@ * @return a List of Mutations for a row, with columnA having valueA * and columnB having valueB */ - private List getMutations() { + private static List getMutations() { List mutations = new ArrayList(); mutations.add(new Mutation(false, columnAname, valueAname, true)); mutations.add(new Mutation(false, columnBname, valueBname, true)); @@ -512,7 +516,7 @@ * (rowB, columnA): place valueC * (rowB, columnB): place valueD */ - private List getBatchMutations() { + private static List getBatchMutations() { List batchMutations = new ArrayList(); // Mutations to rowA. You can't mix delete and put anymore. Index: src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java (revision 1325050) +++ src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java (working copy) @@ -971,11 +971,11 @@ } else { if(famAndQf.length == 1) { put.add(famAndQf[0], HConstants.EMPTY_BYTE_ARRAY, - m.value != null ? m.value.array() + m.value != null ? getBytes(m.value) : HConstants.EMPTY_BYTE_ARRAY); } else { put.add(famAndQf[0], famAndQf[1], - m.value != null ? m.value.array() + m.value != null ? getBytes(m.value) : HConstants.EMPTY_BYTE_ARRAY); } put.setWriteToWAL(m.writeToWAL); @@ -1029,11 +1029,11 @@ } else { if(famAndQf.length == 1) { put.add(famAndQf[0], HConstants.EMPTY_BYTE_ARRAY, - m.value != null ? m.value.array() + m.value != null ? getBytes(m.value) : HConstants.EMPTY_BYTE_ARRAY); } else { put.add(famAndQf[0], famAndQf[1], - m.value != null ? m.value.array() + m.value != null ? getBytes(m.value) : HConstants.EMPTY_BYTE_ARRAY); } put.setWriteToWAL(m.writeToWAL); @@ -1398,8 +1398,8 @@ return; } for (Map.Entry entry : attributes.entrySet()) { - String name = Bytes.toStringBinary(entry.getKey()); - byte[] value = Bytes.toBytes(entry.getValue()); + String name = Bytes.toStringBinary(getBytes(entry.getKey())); + byte[] value = getBytes(entry.getValue()); op.setAttribute(name, value); } }