diff --git a/core/net/src/test/java/org/onosproject/net/flowobjective/impl/InOrderFlowObjectiveManagerTest.java b/core/net/src/test/java/org/onosproject/net/flowobjective/impl/InOrderFlowObjectiveManagerTest.java
index 7ce1c16..9797442 100644
--- a/core/net/src/test/java/org/onosproject/net/flowobjective/impl/InOrderFlowObjectiveManagerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/flowobjective/impl/InOrderFlowObjectiveManagerTest.java
@@ -181,7 +181,9 @@
         private void recordObjective(Objective obj) {
             try {
                 Thread.sleep(new Random().nextInt(bound) + offset);
-                actualObjs.add(obj);
+                if (!actualObjs.contains(obj)) {
+                    actualObjs.add(obj);
+                }
                 obj.context().ifPresent(c -> c.onSuccess(obj));
             } catch (Exception e) {
                 obj.context().ifPresent(c -> c.onError(obj, ObjectiveError.UNKNOWN));
@@ -244,7 +246,7 @@
 
     @Test
     public void forwardTimeout() {
-        expect(mgr.flowObjectiveStore.getNextGroup(NID1)).andReturn(NGRP1).times(1);
+        expect(mgr.flowObjectiveStore.getNextGroup(NID1)).andReturn(NGRP1).times(2);
         expect(mgr.flowObjectiveStore.getNextGroup(NID2)).andReturn(NGRP2).times(2);
         replay(mgr.flowObjectiveStore);
 
