From d4066ea7fcf65ce9f1b426ffa26ed7a950340593 Mon Sep 17 00:00:00 2001 From: Jian Li Date: Thu, 7 Jun 2018 01:44:45 +0900 Subject: [PATCH] Bugfix: resolve a NPE caused by quering a non-existing router MAC Change-Id: Ie059690efd697341b7c9de4a61a1ce8b20e9734f --- .../openstacknetworking/impl/OpenstackNetworkManager.java | 6 +++--- .../impl/OpenstackRoutingArpHandler.java | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) 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 205602d8f6..94669ed1e8 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 @@ public class OpenstackNetworkManager 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 5736e88ae1..291907297d 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 @@ public class OpenstackRoutingArpHandler { try { - Set fipSet = osRouterService.floatingIps().stream() - .map(NetFloatingIP::getFloatingIpAddress).collect(Collectors.toSet()); + Set 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; }