BUG-5280: fix a thinko around sealed transactions
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / databroker / actors / dds / AbstractProxyTransaction.java
index cc1651a2edcf33a6ba4779b7bd37038a99db5ea0..9235f25e6e918c33688a8d42b0c43477694cd0f9 100644 (file)
@@ -63,27 +63,27 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
     }
 
     final void delete(final YangInstanceIdentifier path) {
-        checkSealed();
+        checkNotSealed();
         doDelete(path);
     }
 
     final void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
-        checkSealed();
+        checkNotSealed();
         doMerge(path, data);
     }
 
     final void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
-        checkSealed();
+        checkNotSealed();
         doWrite(path, data);
     }
 
     final CheckedFuture<Boolean, ReadFailedException> exists(final YangInstanceIdentifier path) {
-        checkSealed();
+        checkNotSealed();
         return doExists(path);
     }
 
     final CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final YangInstanceIdentifier path) {
-        checkSealed();
+        checkNotSealed();
         return doRead(path);
     }
 
@@ -95,11 +95,15 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
      * Seals this transaction when ready.
      */
     final void seal() {
-        checkSealed();
+        checkNotSealed();
         doSeal();
         sealed = true;
     }
 
+    private void checkNotSealed() {
+        Preconditions.checkState(!sealed, "Transaction %s has already been sealed", getIdentifier());
+    }
+
     private void checkSealed() {
         Preconditions.checkState(sealed, "Transaction %s has not been sealed yet", getIdentifier());
     }
@@ -109,7 +113,7 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
      * being sent to the backend.
      */
     final void abort() {
-        checkSealed();
+        checkNotSealed();
         doAbort();
     }