@Override
  public String toString() {
    if (txnToWriteIds == null || txnToWriteIds.isEmpty()) {
      return "{}";
    }
    StringBuilder sb = new StringBuilder(" TxnStatus[");
    for (HiveStreamingConnection.TxnState state : txnStatus) {
      //'state' should not be null - future proofing
      sb.append(state == null ? "N" : state);
    }
    sb.append("] LastUsed ").append(JavaUtils.txnIdToString(lastTxnUsed));
    return "TxnId/WriteIds=[" + txnToWriteIds.get(0).getTxnId()
        + "/" + txnToWriteIds.get(0).getWriteId()
        + "..."
        + txnToWriteIds.get(txnToWriteIds.size() - 1).getTxnId()
        + "/" + txnToWriteIds.get(txnToWriteIds.size() - 1).getWriteId()
        + "] on connection = " + conn + "; " + sb;
  }
Represents a batch of transactions acquired from MetaStore.

@param conn - hive streaming connection
@throws StreamingException if failed to create new RecordUpdater for batch
streaming/src/java/org/apache/hive/streaming/TransactionBatch.java