Fix a few more app startup/shutdown problems

Change-Id: Ideb48a1e845ae345306fa10ec55499c471566ce7
diff --git a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
index 6ee27a3..eb3d873 100644
--- a/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
+++ b/apps/bgprouter/src/main/java/org/onosproject/bgprouter/BgpRouter.java
@@ -84,6 +84,7 @@
 
     private DeviceListener deviceListener;
     private IcmpHandler icmpHandler;
+    private BgpConfig bgpConfig = null;
 
     private static List<String> components = new ArrayList<>();
     static {
@@ -100,11 +101,10 @@
         components.forEach(name -> componentService.activate(appId, name));
 
         ApplicationId routerAppId = coreService.getAppId(RoutingService.ROUTER_APP_ID);
-        BgpConfig bgpConfig =
-                networkConfigService.getConfig(routerAppId, RoutingService.CONFIG_CLASS);
+        bgpConfig = networkConfigService.getConfig(routerAppId, RoutingService.CONFIG_CLASS);
 
         if (bgpConfig == null) {
-            log.error("No BgpConfig found");
+            log.warn("No BgpConfig found");
             return;
         }
 
@@ -137,9 +137,11 @@
 
         RoutingConfiguration.unregister(networkConfigService);
 
-        connectivityManager.stop();
-        icmpHandler.stop();
-        deviceService.removeListener(deviceListener);
+        if (bgpConfig != null) {
+            connectivityManager.stop();
+            icmpHandler.stop();
+            deviceService.removeListener(deviceListener);
+        }
 
         log.info("BgpRouter stopped");
     }