From d1183db825887a4388827863935ab2701ff20c75 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20de=20Talhou=C3=ABt?= Date: Tue, 21 Jul 2015 15:44:01 -0400 Subject: [PATCH] Fix issue on shutdown. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit On shutdown, former behaviour was deleting ccap and qos from the operational datastore directly. But at no point those were initialized. So if no action was perfomed by the user, we could see the attached log. I think all we need is the close the ListenerRegistration and eveything will be deleted on the operational datastore. associated logs: https://gist.github.com/23396b108c1742b9299b Change-Id: I1816387787deb7e441a55df3dd58c9ccaf892d4e Signed-off-by: Alexis de Talhouët --- .../provider/PacketcableProvider.java | 8 -------- .../rev140131/PacketcableProviderModule.java | 20 +++++++++++++++++-- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java b/packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java index 08854e6..6f68360 100644 --- a/packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java +++ b/packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java @@ -87,14 +87,6 @@ public class PacketcableProvider implements DataChangeListener, AutoCloseable { @Override public void close() throws ExecutionException, InterruptedException { executor.shutdown(); - if (dataBroker != null) { - // remove our config datastore instances - final AsyncReadWriteTransaction, ?> tx = dataBroker.newReadWriteTransaction(); - tx.delete(LogicalDatastoreType.CONFIGURATION, ccapIID); - tx.delete(LogicalDatastoreType.CONFIGURATION, qosIID); - // TODO - commit() below has been deprecated - tx.commit().get(); - } } public InetAddress getInetAddress(final String subId){ diff --git a/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java b/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java index 51212ba..1d6275b 100644 --- a/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java +++ b/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java @@ -39,9 +39,25 @@ public class PacketcableProviderModule extends org.opendaylight.yang.gen.v1.urn. dataBrokerService.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION, PacketcableProvider.qosIID, provider, DataBroker.DataChangeScope.SUBTREE ); - logger.info("PacketCableProvider Registered with DataBroker"); - return provider; + + AutoCloseable close = new AutoCloseable() { + + @Override + public void close() throws Exception { + if (ccapDataChangeListenerRegistration != null) { + ccapDataChangeListenerRegistration.close(); + } + if (qosDataChangeListenerRegistration != null) { + qosDataChangeListenerRegistration.close(); + } + if (provider != null) { + provider.close(); + } + } + }; + + return close; } } -- 2.36.6