Search in sources :

Example 11 with OptimisticLockFailedException

use of org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException in project genius by opendaylight.

the class MDSALManager method installFlowInternal.

public CheckedFuture<Void, TransactionCommitFailedException> installFlowInternal(FlowEntity flowEntity) {
    WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
    LOG.trace("InstallFlow for flowEntity {} ", flowEntity);
    writeFlowEntityInternal(flowEntity, tx);
    CheckedFuture<Void, TransactionCommitFailedException> submitFuture = tx.submit();
    Futures.addCallback(submitFuture, new FutureCallback<Void>() {

        @Override
        public void onSuccess(final Void result) {
            // Committed successfully
            LOG.debug("Install Flow -- Committedsuccessfully ");
        }

        @Override
        public void onFailure(final Throwable throwable) {
            if (throwable instanceof OptimisticLockFailedException) {
                // Failed because of concurrent transaction modifying same
                // data
                LOG.error("Install Flow -- Failed because of concurrent transaction modifying same data");
            } else {
                // Some other type of TransactionCommitFailedException
                LOG.error("Install Flow -- Some other type of TransactionCommitFailedException", throwable);
            }
        }
    }, MoreExecutors.directExecutor());
    return submitFuture;
}
Also used : WriteTransaction(org.opendaylight.controller.md.sal.binding.api.WriteTransaction) TransactionCommitFailedException(org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException) OptimisticLockFailedException(org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException)

Example 12 with OptimisticLockFailedException

use of org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException in project genius by opendaylight.

the class DataBrokerFailuresTest method testUnfailSubmits.

@Test
public void testUnfailSubmits() throws TransactionCommitFailedException {
    dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
    checkSubmitFails();
    dbFailures.unfailSubmits();
    dataBroker.newReadWriteTransaction().submit().checkedGet();
    dataBroker.newWriteOnlyTransaction().submit().checkedGet();
    dataBroker.newReadWriteTransaction().submit().checkedGet();
}
Also used : OptimisticLockFailedException(org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException) Test(org.junit.Test)

Example 13 with OptimisticLockFailedException

use of org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException in project genius by opendaylight.

the class DataBrokerFailuresTest method testFailReadWriteTransactionSubmit.

@Test
public void testFailReadWriteTransactionSubmit() throws TransactionCommitFailedException {
    dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
    checkSubmitFails();
    // Now make sure that it still fails, and not just once:
    checkSubmitFails();
    // and still:
    checkSubmitFails();
}
Also used : OptimisticLockFailedException(org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException) Test(org.junit.Test)

Example 14 with OptimisticLockFailedException

use of org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException in project genius by opendaylight.

the class DataBrokerFailuresTest method testFailWriteTransactionSubmit.

@Test(expected = OptimisticLockFailedException.class)
public void testFailWriteTransactionSubmit() throws TransactionCommitFailedException {
    dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
    dataBroker.newWriteOnlyTransaction().submit().checkedGet();
}
Also used : OptimisticLockFailedException(org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException) Test(org.junit.Test)

Aggregations

OptimisticLockFailedException (org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException)14 TransactionCommitFailedException (org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException)8 Test (org.junit.Test)7 WriteTransaction (org.opendaylight.controller.md.sal.binding.api.WriteTransaction)4 ExecutionException (java.util.concurrent.ExecutionException)2 DataBroker (org.opendaylight.controller.md.sal.binding.api.DataBroker)2 LogicalDatastoreType (org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType)2 OPERATIONAL (org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL)2 DOMDataWriteTransaction (org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction)2 ManagedNewTransactionRunner (org.opendaylight.genius.infra.ManagedNewTransactionRunner)2 Optional (com.google.common.base.Optional)1 Truth.assertThat (com.google.common.truth.Truth.assertThat)1 IOException (java.io.IOException)1 TimeoutException (java.util.concurrent.TimeoutException)1 Assert.fail (org.junit.Assert.fail)1 Before (org.junit.Before)1 Rule (org.junit.Rule)1 InOrder (org.mockito.InOrder)1 NoShardLeaderException (org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException)1 ReadWriteTransaction (org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction)1