OPNFLWPLUG-1033: Fix for StackOverflowError while stopping 09/76209/3
authorSomashekhar Javalagi <somashekhar.manohara.javalagi@ericsson.com>
Tue, 18 Sep 2018 11:18:21 +0000 (16:48 +0530)
committerSomashekhar Javalagi <somashekhar.manohara.javalagi@ericsson.com>
Tue, 18 Sep 2018 11:29:41 +0000 (11:29 +0000)
forwardingrules-manager bundle

Root cause: DeviceMastershipManager will be registering to
MastershipChangeServiceManager and MastershipServiceDelegate will be
created, which will be adding DeviceMastershipManager service to
serviceGroup. But at the time of stopping forwardingrules-manager bundle
DeviceMastershipManager is trying to close MastershipServiceDelegate
registration, which in turn was trying to close the service which
created it, causing StackOverflowError.

Solution: Just removing DeviceMastershipManager from service group
while closing MastershipServiceDelegate registration and not closing the
service by registration.

Change-Id: I12609460a9a05e0d443822845582301a6eff9bf5
Signed-off-by: Somashekhar Javalagi <somashekhar.manohara.javalagi@ericsson.com>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/mastership/MastershipServiceDelegate.java
openflowplugin-impl/src/test/java/org/opendaylight/openflowplugin/impl/mastership/MastershipServiceDelegateTest.java

index b0df40eefd78b8818577018c9afd9c6b67469d14..0d6cd67e7fdeeedd91e4b9d135dd95a97741e61e 100644 (file)
@@ -32,7 +32,6 @@ public class MastershipServiceDelegate implements MastershipChangeService, Maste
     public void close() throws Exception {
         LOG.debug("Mastership change service un-registered: {}", service);
         this.unregisterService.close();
-        this.service.close();
     }
 
     @Override
index ba39cca027feabe3a00825a66c2c2cd706feafd7..c1b1ec1adc6e385f5687262ec42efc06d1fd4293 100644 (file)
@@ -45,7 +45,6 @@ public class MastershipServiceDelegateTest {
     @Test
     public void close() throws Exception {
         mastershipServiceDelegate.close();
-        verify(mastershipChangeService).close();
         verify(unregisterService).close();
     }