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;
}
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();
}
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();
}
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();
}
Aggregations