Ensure SlidingWindowCounter is advanced in correct order prior to building the complete window

Change-Id: Ie58cb48cf4af5e29fdc48e02ec53e37b326b0340
(cherry picked from commit 322a624e60cc4367f0a041129d6721aee007a127)
diff --git a/utils/misc/src/main/java/org/onlab/util/SlidingWindowCounter.java b/utils/misc/src/main/java/org/onlab/util/SlidingWindowCounter.java
index cc4f4fe..d68cd74 100644
--- a/utils/misc/src/main/java/org/onlab/util/SlidingWindowCounter.java
+++ b/utils/misc/src/main/java/org/onlab/util/SlidingWindowCounter.java
@@ -190,12 +190,12 @@
     }
 
     void advanceHead() {
-        if (counters.size() - 1 < slotAfter(headSlot)) {
-            counters.add(0, new AtomicLong(0));
+        if (counters.size() < windowSlots) {
+            counters.add(new AtomicLong(0));
         } else {
             counters.get(slotAfter(headSlot)).set(0);
-            headSlot = slotAfter(headSlot);
         }
+        headSlot = slotAfter(headSlot);
         totalSlots.incrementAndGet();
     }