private AbortedTransactionReport decodeHalfAbort(byte type, ChannelBuffer buffer) {
AbortedTransactionReport msg;
if (type == TSOMessage.AbortedTransactionReport) {
msg = new AbortedTransactionReport();
msg.readObject(buffer);
} else {
msg = new AbortedTransactionReport();
int diff = buffer.readByte();
msg.startTimestamp = lastHalfAbortedTimestamp + diff;
}