static L cloneList(Collection l) {
if (l == null) ret new L;
// assume collection's mutex is equal to collection, which will be true unless you explicitly pass a mutex to synchronizedList() which no one ever does.
synchronized(l) {
ret new ArrayList(l);
}
}