ONOS-7916 address a NPE and add some more debugging logs

Change-Id: I1debef2d108177ea8d000496ff3de78349433cc5
diff --git a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
index cf3df33..7afc841 100644
--- a/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
+++ b/protocols/netconf/ctl/src/main/java/org/onosproject/netconf/ctl/impl/NetconfControllerImpl.java
@@ -245,6 +245,7 @@
             if (device != null) {
                 ip = device.annotations().value("ipaddress");
                 port = Integer.parseInt(device.annotations().value("port"));
+                path = device.annotations().value("path");
             } else {
                 Triple<String, Integer, Optional<String>> info = extractIpPortPath(deviceId);
                 ip = info.getLeft();
@@ -296,8 +297,10 @@
     }
 
     private void stopDevice(DeviceId deviceId, boolean remove) {
-        netconfDeviceMap.get(deviceId).disconnect();
-        netconfDeviceMap.remove(deviceId);
+        NetconfDevice nc = netconfDeviceMap.remove(deviceId);
+        if (nc != null) {
+            nc.disconnect();
+        }
         if (remove) {
             for (NetconfDeviceListener l : netconfDeviceListeners) {
                 l.deviceRemoved(deviceId);
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 36341d5..e60c8e5 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -411,12 +411,13 @@
 
     private void connectDevice(NetconfDeviceConfig config) {
         if (config == null) {
+            log.warn("connect device invoked with null config");
             return;
         }
         DeviceId deviceId = config.subject();
         if (!deviceId.uri().getScheme().equals(SCHEME_NAME)) {
             // not under my scheme, skipping
-            log.trace("{} not my scheme, skipping", deviceId);
+            log.debug("{} not of schema {}, skipping", deviceId, SCHEME_NAME);
             return;
         }
         DeviceDescription deviceDescription = createDeviceRepresentation(deviceId, config);
@@ -427,9 +428,11 @@
         storeDeviceKey(config.sshKey(), config.username(), config.password(), deviceId);
         retriedPortDiscoveryMap.put(deviceId, new AtomicInteger(0));
         if (deviceService.getDevice(deviceId) == null) {
+            log.debug("device connected {}", deviceId);
             providerService.deviceConnected(deviceId, deviceDescription);
         }
         try {
+            log.debug("check and update {}", deviceId);
             checkAndUpdateDevice(deviceId, deviceDescription, true);
         } catch (Exception e) {
             log.error("Unhandled exception checking {}", deviceId, e);