import java.io.DataInput;
import java.io.IOException;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Payload persisted when a transaction is aborted. It contains the transaction identifier.
}
}
+ private static final Logger LOG = LoggerFactory.getLogger(AbortTransactionPayload.class);
private static final long serialVersionUID = 1L;
AbortTransactionPayload(final TransactionIdentifier transactionId, final byte[] serialized) {
super(transactionId, serialized);
}
- public static AbortTransactionPayload create(final TransactionIdentifier transactionId) throws IOException {
- final ByteArrayDataOutput out = ByteStreams.newDataOutput();
- transactionId.writeTo(out);
+ public static AbortTransactionPayload create(final TransactionIdentifier transactionId,
+ final int initialSerializedBufferCapacity) {
+ final ByteArrayDataOutput out = ByteStreams.newDataOutput(initialSerializedBufferCapacity);
+ try {
+ transactionId.writeTo(out);
+ } catch (IOException e) {
+ // This should never happen
+ LOG.error("Failed to serialize {}", transactionId, e);
+ throw new RuntimeException("Failed to serialized " + transactionId, e);
+ }
return new AbortTransactionPayload(transactionId, out.toByteArray());
}