From: Tomas Cere Date: Tue, 28 Apr 2015 09:09:50 +0000 (+0200) Subject: BUG 3066 : Optimistic lock failed, on NetconfStateUpdate X-Git-Tag: release/lithium~202^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=9a0e32fddf11369466b37b17d02e322c96c55eb5;hp=bd7617c472e0326c56e46036580d187a450c5b80 BUG 3066 : Optimistic lock failed, on NetconfStateUpdate Fixed race condition between commit of NetconfState and opening of a new transaction in NetconfMonitoring state update. Change-Id: I2f56a0e432e630e56a35409c56e4198a3e278594 Signed-off-by: Tomas Cere --- diff --git a/opendaylight/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriter.java b/opendaylight/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriter.java index 50958e423f..3dbcc53822 100644 --- a/opendaylight/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriter.java +++ b/opendaylight/netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriter.java @@ -61,19 +61,12 @@ final class MonitoringToMdsalWriter implements AutoCloseable, NetconfMonitoringS tx.put(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(NetconfState.class), state); // FIXME first attempt (right after we register to binding broker) always fails // Is it due to the fact that we are writing from the onSessionInitiated callback ? - final CheckedFuture submit = tx.submit(); - - Futures.addCallback(submit, new FutureCallback() { - @Override - public void onSuccess(final Void aVoid) { - LOG.debug("Netconf state updated successfully"); - } - - @Override - public void onFailure(final Throwable throwable) { - LOG.warn("Unable to update netconf state", throwable); - } - }); + try { + tx.submit().checkedGet(); + LOG.debug("Netconf state updated successfully"); + } catch (TransactionCommitFailedException e) { + LOG.warn("Unable to update netconf state", e); + } } @Override