Handle race-conditions in BGP shutdown code
[bgpcep.git] / bgp / openconfig-state / src / main / java / org / opendaylight / protocol / bgp / state / StateProviderImpl.java
index b2c0db760ad026f523ffcbcfb8dcb5cf7f428659..30eebed46b6f4987f1e7d5ad31200b3d03a7a4bd 100644 (file)
@@ -172,8 +172,9 @@ public final class StateProviderImpl implements TransactionChainListener, AutoCl
             this.scheduleTask.cancel(true);
             if (!this.instanceIdentifiersCache.keySet().isEmpty()) {
                 final WriteTransaction wTx = this.transactionChain.newWriteOnlyTransaction();
-                this.instanceIdentifiersCache.keySet().iterator()
-                .forEachRemaining(ribId -> removeStoredOperationalState(ribId, wTx));
+                this.instanceIdentifiersCache.values()
+                        .forEach(bgpIID -> wTx.delete(LogicalDatastoreType.OPERATIONAL, bgpIID));
+                this.instanceIdentifiersCache.clear();
                 wTx.commit().addCallback(new FutureCallback<CommitInfo>() {
                     @Override
                     public void onSuccess(final CommitInfo result) {