TransactionAwareHTable extends AbstractTransactionAwareTable implements HTableInterface, TransactionAware { @Override public Result get(Get get) throws IOException { if (tx == null) { throw new IOException("Transaction not started"); } return hTable.get(transactionalizeAction(get)); } TransactionAwareHTable(HTableInterface hTable);  TransactionAwareHTable(HTableInterface hTable, TxConstants.ConflictDetection conflictLevel);  TransactionAwareHTable(HTableInterface hTable, boolean allowNonTransactional);  TransactionAwareHTable(HTableInterface hTable, TxConstants.ConflictDetection conflictLevel,
                                boolean allowNonTransactional); @Override byte[] getTableName(); @Override TableName getName(); @Override Configuration getConfiguration(); @Override HTableDescriptor getTableDescriptor(); @Override boolean exists(Get get); @Override Boolean[] exists(List<Get> gets); @Override void batch(List<? extends Row> actions, Object[] results); @Override Object[] batch(List<? extends Row> actions); @Override void batchCallback(List<? extends Row> actions, Object[] results, Batch.Callback<R> callback); @Override Object[] batchCallback(List<? extends Row> actions, Batch.Callback<R> callback); @Override Result get(Get get); @Override Result[] get(List<Get> gets); @Override Result getRowOrBefore(byte[] row, byte[] family); @Override ResultScanner getScanner(Scan scan); @Override ResultScanner getScanner(byte[] family); @Override ResultScanner getScanner(byte[] family, byte[] qualifier); @Override void put(Put put); @Override void put(List<Put> puts); @Override boolean checkAndPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put); @Override void delete(Delete delete); @Override void delete(List<Delete> deletes); @Override boolean checkAndDelete(byte[] row, byte[] family, byte[] qualifier, byte[] value, Delete delete); @Override boolean checkAndMutate(byte[] row, byte[] family, byte[] qualifier,
                                CompareFilter.CompareOp compareOp, byte[] value, RowMutations rowMutations); @Override void mutateRow(RowMutations rm); @Override Result append(Append append); @Override Result increment(Increment increment); @Override long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount); @Override long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, Durability durability); @Override long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL); @Override boolean isAutoFlush(); @Override void flushCommits(); @Override void close(); @Override CoprocessorRpcChannel coprocessorService(byte[] row); @Override Map<byte[], R> coprocessorService(Class<T> service, byte[] startKey, byte[] endKey,
                                                                  Batch.Call<T, R> callable); @Override void coprocessorService(Class<T> service, byte[] startKey, byte[] endKey,
                                                        Batch.Call<T, R> callable, Batch.Callback<R> callback); @Override Map<byte[], R> batchCoprocessorService(
      MethodDescriptor methodDescriptor, Message request, byte[] startKey, byte[] endKey,
      R responsePrototype); @Override void batchCoprocessorService(MethodDescriptor methodDescriptor,
      Message request, byte[] startKey, byte[] endKey, R responsePrototype, Callback<R> callback); @Override void setAutoFlush(boolean autoFlush); @Override void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail); @Override void setAutoFlushTo(boolean autoFlush); @Override long getWriteBufferSize(); @Override void setWriteBufferSize(long writeBufferSize); void addToOperation(OperationWithAttributes op, Transaction tx);  }
@Test(expected = IOException.class) public void testTransactionlessFailure() throws Exception { transactionAwareHTable.get(new Get(TestBytes.row)); }