From 9ab51c36befd1572d91b69266b93bf6d23615738 Mon Sep 17 00:00:00 2001
From: Diogo <diogo_572@hotmail.com>
Date: Mon, 20 Feb 2017 23:43:07 +0000
Subject: [PATCH] Fix bug where it was impossible to remove member or pool if
 class above (pool for members and vip for pools)  was removed before.

---
 .../net/floodlightcontroller/loadbalancer/LoadBalancer.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/net/floodlightcontroller/loadbalancer/LoadBalancer.java b/src/main/java/net/floodlightcontroller/loadbalancer/LoadBalancer.java
index c42f7fb60..de0dbc10c 100644
--- a/src/main/java/net/floodlightcontroller/loadbalancer/LoadBalancer.java
+++ b/src/main/java/net/floodlightcontroller/loadbalancer/LoadBalancer.java
@@ -687,7 +687,7 @@ public class LoadBalancer implements IFloodlightModule,
             pool = pools.get(poolId);
             if (pool == null)	// fix dereference violations
             	return -1;
-            if (pool.vipId != null)
+            if (pool.vipId != null && vips.containsKey(pool.vipId))
                 vips.get(pool.vipId).pools.remove(poolId);
             pools.remove(poolId);
             return 0;
@@ -750,7 +750,7 @@ public class LoadBalancer implements IFloodlightModule,
         member = members.get(memberId);
         
         if(member != null){
-            if (member.poolId != null)
+            if (member.poolId != null && pools.containsKey(member.poolId))
                 pools.get(member.poolId).members.remove(memberId);
             members.remove(memberId);
             return 0;
-- 
GitLab