Support multiple pending add buckets

Change-Id: Ia528a9b52ad9cb935b4a5d0bc41263baabbdb3d3
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
index a698a81..4b2800c 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
@@ -16,6 +16,7 @@
 package org.onosproject.driver.pipeline;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Sets;
 import org.onlab.osgi.ServiceDirectory;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.IpPrefix;
@@ -290,8 +291,15 @@
                 // it is possible that group-chain has not been fully created yet
                 log.debug("Waiting to add bucket to group for next-id:{} in dev:{}",
                           nextObjective.id(), deviceId);
-                // by design only one pending bucket is allowed for the group
-                groupHandler.pendingBuckets.put(nextObjective.id(), nextObjective);
+
+                // by design multiple pending bucket is allowed for the group
+                groupHandler.pendingBuckets.compute(nextObjective.id(), (nextId, pendBkts) -> {
+                    if (pendBkts == null) {
+                        pendBkts = Sets.newHashSet();
+                    }
+                    pendBkts.add(nextObjective);
+                    return pendBkts;
+                });
             }
             break;
         case REMOVE: