Bugfix: resolve a NPE caused by quering a non-existing router MAC

Change-Id: Ie059690efd697341b7c9de4a61a1ce8b20e9734f
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
index 205602d..94669ed 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackNetworkManager.java
@@ -442,12 +442,12 @@
         try {
             externalPeerRouterMap.computeIfPresent(ipAddress.toString(), (id, existing) ->
                 new DefaultExternalPeerRouter(ipAddress, macAddress, existing.externalPeerRouterVlanId()));
+
+            log.info("Updated external peer router map {}",
+                    externalPeerRouterMap.get(ipAddress.toString()).value().toString());
         } catch (Exception e) {
             log.error("Exception occurred because of {}", e.toString());
         }
-
-        log.info("Updated external peer router map {}",
-                externalPeerRouterMap.get(ipAddress.toString()).value().toString());
     }
 
 
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
index 5736e88..2919072 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/OpenstackRoutingArpHandler.java
@@ -278,11 +278,11 @@
 
             try {
 
-                Set<String> fipSet = osRouterService.floatingIps().stream()
-                        .map(NetFloatingIP::getFloatingIpAddress).collect(Collectors.toSet());
+                Set<String> extRouterIps = osNetworkService.externalPeerRouters().
+                        stream().map(r -> r.externalPeerRouterIp().toString()).collect(Collectors.toSet());
 
-                // if the SPA is floating IP, we simply ignores it
-                if (fipSet.contains(spa.toString())) {
+                // if SPA is NOT contained in existing external router IP set, we ignore it
+                if (!extRouterIps.contains(spa.toString())) {
                     return;
                 }