diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ArrayDataset.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ArrayDataset.java
index d943953..16088b2 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ArrayDataset.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ArrayDataset.java
@@ -38,8 +38,9 @@
     public static final String[] VALUES_FOR_ADDITIONAL_GROUPS = new String[] { "1", "2", "3", "4", "5" };
     public static final String[] VALUES_FOR_ADDITIONAL_FIELDS = new String[] { "1", "2" };
 
-    public static final String[] CONTAINER_OBJECT_NAMES = new String[] { "container_object_1", "container_object_2" };
     public static final String[] CONTAINED_OBJECT_NAMES = new String[] { "contained_object_1", "contained_object_2" };
+    public static final String[] CONTAINER_OBJECT_NAMES = new String[] { "container_object_A", "container_object_B",
+            "container_object_C", "container_object_D", "container_object_E" };
 
     private String fromBaseQuery;
 
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ValueSupplierFactory.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ValueSupplierFactory.java
index efacf78..0d63f12 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ValueSupplierFactory.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/array/ValueSupplierFactory.java
@@ -44,6 +44,7 @@
 
     private class BaseArrayIndexValueSupplier extends ArrayIndex.Builder.ValueSupplier {
         private final Set<BaseWisconsinTable.Field> consumedFields = new LinkedHashSet<>();
+        private final Set<String> consumedContainedNames = new LinkedHashSet<>();
 
         @Override
         public BaseWisconsinTable.Field getAtomicBaseField() {
@@ -78,8 +79,16 @@
             }
             fieldName.add(baseField.fieldName);
             if (randomGenerator.nextBoolean()) {
-                int index = randomGenerator.nextInt(ArrayDataset.CONTAINED_OBJECT_NAMES.length);
-                fieldName.add(ArrayDataset.CONTAINED_OBJECT_NAMES[index]);
+                // Three tries to generate a unique contained name. Otherwise, we default to no contained name.
+                for (int i = 0; i < 3; i++) {
+                    int index = randomGenerator.nextInt(ArrayDataset.CONTAINED_OBJECT_NAMES.length);
+                    String containedName = ArrayDataset.CONTAINED_OBJECT_NAMES[index];
+                    if (!consumedContainedNames.contains(containedName)) {
+                        fieldName.add(containedName);
+                        consumedContainedNames.add(containedName);
+                        break;
+                    }
+                }
             }
             return fieldName;
         }
