X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FDOMDataBrokerImpl.java;h=3fafad7cf996b2dad776bb656f34d55eb07022bd;hp=313a2c3d9cb612941015f57edbaa995431c1d6d6;hb=822e5c6c51346ef6ca8254b5597b95742a05fc7d;hpb=bcd020ecbeeacc97df1717a238d93bacd87bcbfc diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java index 313a2c3d9c..3fafad7cf9 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerImpl.java @@ -259,21 +259,32 @@ public class DOMDataBrokerImpl implements DOMDataBroker { public RpcResult call() throws Exception { Boolean canCommit = canCommit().get(); - - if (canCommit) { - try { - preCommit().get(); + try { + if (canCommit) { try { - commit().get(); + preCommit().get(); + try { + commit().get(); + return null; + } catch (InterruptedException | ExecutionException e) { + COORDINATOR_LOG.error("Tx: {} Error during commit", transaction.getIdentifier(), e); + } + } catch (InterruptedException | ExecutionException e) { - // ERROR + COORDINATOR_LOG.warn("Tx: {} Error during preCommit, starting Abort", + transaction.getIdentifier(), e); } - - } catch (InterruptedException | ExecutionException e) { + } else { abort().get(); } - } else { + } catch (InterruptedException | ExecutionException e) { + COORDINATOR_LOG.warn("Tx: {} Error during canCommit, starting Abort", transaction.getIdentifier(), e); + + } + try { abort().get(); + } catch (InterruptedException | ExecutionException e) { + COORDINATOR_LOG.error("Tx: {} Error during abort", transaction.getIdentifier(), e); } return null; }