diff --git a/classpath/java/util/Collections.java b/classpath/java/util/Collections.java index d8eda7f619..732df1f706 100644 --- a/classpath/java/util/Collections.java +++ b/classpath/java/util/Collections.java @@ -33,8 +33,8 @@ public class Collections { } static class SynchronizedCollection implements Collection { - private final Object lock; - private final Collection collection; + protected final Object lock; + protected final Collection collection; public SynchronizedCollection(Object lock, Collection collection) { this.lock = lock; @@ -73,6 +73,11 @@ public class Collections { public SynchronizedSet(Object lock, Set set) { super(lock, set); } + + public void addAll(Collection c) { + synchronized (lock) { ((Set)collection).addAll(c); } + } + } static class SynchronizedIterator implements Iterator { diff --git a/classpath/java/util/HashMap.java b/classpath/java/util/HashMap.java index 90795391ef..16337b367a 100644 --- a/classpath/java/util/HashMap.java +++ b/classpath/java/util/HashMap.java @@ -286,6 +286,10 @@ public class HashMap implements Map { return HashMap.this.size(); } + public void addAll(Collection> c) { + throw new UnsupportedOperationException(); + } + public boolean contains(Entry e) { return containsKey(e.getKey()); } @@ -316,6 +320,10 @@ public class HashMap implements Map { return containsKey(key); } + public void addAll(Collection c) { + throw new UnsupportedOperationException(); + } + public boolean add(K key) { return putCell(key, null) != null; } diff --git a/classpath/java/util/Set.java b/classpath/java/util/Set.java index d01a5ec704..e48d1f1148 100644 --- a/classpath/java/util/Set.java +++ b/classpath/java/util/Set.java @@ -1,3 +1,5 @@ package java.util; -public interface Set extends Collection { } +public interface Set extends Collection { + public void addAll(Collection c); +}