Merge "Fix small resource leak in config-manager."
authorTony Tkacik <ttkacik@cisco.com>
Mon, 31 Mar 2014 07:31:16 +0000 (07:31 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 31 Mar 2014 07:31:16 +0000 (07:31 +0000)
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigRegistryImpl.java
opendaylight/config/config-manager/src/main/java/org/opendaylight/controller/config/manager/impl/ConfigTransactionControllerImpl.java
opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/testingservices/threadpool/test/SimpleConfigurationTest.java

index dd510a1ed7099a3e087e7e4aa935b0881d6f84fb..fb0718a721f15a6f702fdd0134acab5a5f3f3da6 100644 (file)
@@ -161,6 +161,8 @@ public class ConfigRegistryImpl implements AutoCloseable, ConfigRegistryImplMXBe
 
         Map<String, Map.Entry<ModuleFactory, BundleContext>> allCurrentFactories = Collections.unmodifiableMap(
                 resolver.getAllFactories());
+
+        // closed by transaction controller
         ConfigTransactionLookupRegistry txLookupRegistry = new ConfigTransactionLookupRegistry(new TransactionIdentifier(
                 transactionName), factory, allCurrentFactories);
         ServiceReferenceWritableRegistry writableRegistry = ServiceReferenceRegistryImpl.createSRWritableRegistry(
index 84f76c993692055899f7aea55a477c44c970f576..6b7251c302975911c598ccbc0dce4fd09678403e 100644 (file)
@@ -407,12 +407,14 @@ class ConfigTransactionControllerImpl implements
     }
 
     private void internalAbort() {
+        logger.trace("Aborting {}", this);
         transactionStatus.setAborted();
         close();
     }
 
     public void close() {
         dependencyResolverManager.close();
+        txLookupRegistry.close();
     }
 
     @Override
index 28408abed2fb564c05688302cc0d3b20be0465a9..9852a45853b1fad9f0bbd9ab4e3011bb06f8d29b 100644 (file)
@@ -326,26 +326,18 @@ public class SimpleConfigurationTest extends AbstractConfigTest {
     }
 
     @Test
-    public void testAbort() throws InstanceAlreadyExistsException, ValidationException {
+    public void testAbort() throws Exception {
         ConfigTransactionJMXClient transaction = configRegistryClient
                 .createTransaction();
         assertEquals(1, configRegistryClient.getOpenConfigs().size());
 
         transaction.abortConfig();
+        assertEquals(0, configRegistryClient.getOpenConfigs().size());
         try {
-            transaction.createModule(TestingFixedThreadPoolModuleFactory.NAME,
-                    fixed1);
-            fail();
-        } catch (IllegalStateException e) {
-            assertEquals("Configuration was aborted", e.getMessage());
-        }
-        try {
-            transaction.validateConfig();
+            platformMBeanServer.getMBeanInfo(transaction.getObjectName());
             fail();
-        } catch (IllegalStateException e) {
-            assertEquals("Configuration was aborted", e.getMessage());
+        }catch(InstanceNotFoundException e){
         }
-        assertEquals(0, configRegistryClient.getOpenConfigs().size());
     }
 
     @Test