Intents are now removed after being withdrawn.

Change-Id: I7574fe94add00abf58c71c6122bb3dc5aafa0f79
diff --git a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
index fb6aa40..da2fe70 100644
--- a/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/intent/impl/IntentManager.java
@@ -694,6 +694,10 @@
             if (event != null) {
                 eventDispatcher.post(event);
             }
+
+            if (newState == WITHDRAWN) {
+                store.removeIntent(intent.id());
+            }
         }
 
         Map<Intent, IntentState> stateMap() {
diff --git a/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java b/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
index dc7383b..20240d4 100644
--- a/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
+++ b/core/net/src/test/java/org/onlab/onos/net/intent/impl/IntentManagerTest.java
@@ -155,7 +155,8 @@
         listener.setLatch(1, Type.WITHDRAWN);
         service.withdraw(intent);
         listener.await(Type.WITHDRAWN);
-        assertEquals(1L, service.getIntentCount());
+        delay(10); //FIXME this is a race
+        assertEquals(0L, service.getIntentCount());
         assertEquals(0L, flowRuleService.getFlowRuleCount());
     }
 
@@ -176,7 +177,8 @@
 
         listener.await(Type.INSTALLED);
         listener.await(Type.WITHDRAWN);
-        assertEquals(1L, service.getIntentCount());
+        delay(10); //FIXME this is a race
+        assertEquals(0L, service.getIntentCount());
         assertEquals(0L, flowRuleService.getFlowRuleCount());
     }
 
@@ -198,7 +200,8 @@
         service.replace(intent.id(), intent2);
         listener.await(Type.WITHDRAWN);
         listener.await(Type.INSTALLED);
-        assertEquals(2L, service.getIntentCount());
+        delay(10); //FIXME this is a race
+        assertEquals(1L, service.getIntentCount());
         assertEquals(1L, manager.flowRuleService.getFlowRuleCount());
         assertEquals(intent2.number().intValue(),
                      flowRuleService.flows.iterator().next().priority());