bug 322574: Add an assert to verify input collections have no duplicate elements
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/serviceregistry/ShrinkableCollection.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/serviceregistry/ShrinkableCollection.java
index ebf2f34..2dfc942 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/serviceregistry/ShrinkableCollection.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/internal/serviceregistry/ShrinkableCollection.java
@@ -56,6 +56,7 @@
 	private static <E> Collection<? extends E> initComposite(List<Collection<? extends E>> collections) {
 		int size = 0;
 		for (Collection<? extends E> c : collections) {
+			assert verifyNoDuplicates(c);
 			size += c.size();
 		}
 		Collection<E> result = new ArrayList<E>(size);
@@ -69,6 +70,27 @@
 		return result;
 	}
 
+	private static <E> boolean verifyNoDuplicates(Collection<? extends E> c) {
+		for (E e : c) {
+			int count = 0;
+			for (E f : c) {
+				if (e == null) {
+					if (f == null) {
+						count++;
+					}
+				} else {
+					if (e.equals(f)) {
+						count++;
+					}
+				}
+			}
+			if (count != 1) {
+				return false;
+			}
+		}
+		return true;
+	}
+
 	public boolean add(E e) {
 		throw new UnsupportedOperationException();
 	}