ONOS-3763 Change flow state to PENDING_ADD when retrying

Will emit a RULE_UPDATE event if the state is changed.
Update unit test accordingly.

Change-Id: Ie84778c62f52f15b7636d41db246814145e73f77
diff --git a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
index de92894..570383a 100644
--- a/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
+++ b/core/net/src/main/java/org/onosproject/net/flow/impl/FlowRuleManager.java
@@ -305,6 +305,7 @@
                     break;
                 case ADDED:
                 case PENDING_ADD:
+                    event = store.pendingFlowRule(flowRule);
                     try {
                         frp.applyFlowRule(flowRule);
                     } catch (UnsupportedOperationException e) {
diff --git a/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java b/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
index 553745b..24ade7e 100644
--- a/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/flow/impl/FlowRuleManagerTest.java
@@ -206,7 +206,7 @@
         assertEquals("should still be 2 rules", 2, flowCount());
 
         providerService.pushFlowMetrics(DID, ImmutableList.of(fe1));
-        validateEvents(RULE_UPDATED);
+        validateEvents(RULE_UPDATED, RULE_UPDATED);
     }
 
     private boolean validateState(Map<FlowRule, FlowEntryState> expected) {
@@ -293,7 +293,7 @@
         service.applyFlowRules(f3);
 
         providerService.pushFlowMetrics(DID, Collections.singletonList(fe3));
-        validateEvents(RULE_ADD_REQUESTED, RULE_ADDED);
+        validateEvents(RULE_ADD_REQUESTED, RULE_ADDED, RULE_UPDATED);
 
         providerService.flowRemoved(fe3);
         validateEvents();