diff --git httpclient-osgi/src/main/java/org/apache/http/osgi/impl/WeakList.java httpclient-osgi/src/main/java/org/apache/http/osgi/impl/WeakList.java index 59ee6fd..5325196 100644 --- httpclient-osgi/src/main/java/org/apache/http/osgi/impl/WeakList.java +++ httpclient-osgi/src/main/java/org/apache/http/osgi/impl/WeakList.java @@ -58,14 +58,19 @@ class WeakList extends AbstractList { } @Override public boolean add(final T t) { return innerList.add(new WeakReference(t)); } + @Override + public void clear() { + innerList.clear(); + } + private void checkReferences() { final ListIterator> references = innerList.listIterator(); while (references.hasNext()) { final WeakReference reference = references.next(); if (reference.get() == null) { references.remove(); } diff --git httpclient-osgi/src/test/java/org/apache/http/osgi/impl/WeakListTest.java httpclient-osgi/src/test/java/org/apache/http/osgi/impl/WeakListTest.java index a930fa4..77770bf 100644 --- httpclient-osgi/src/test/java/org/apache/http/osgi/impl/WeakListTest.java +++ httpclient-osgi/src/test/java/org/apache/http/osgi/impl/WeakListTest.java @@ -55,8 +55,19 @@ public class WeakListTest { it.next(); } catch (NoSuchElementException e) { thrown = true; } assertTrue(thrown); } + @Test + public void clearSupported() { + final WeakList list = new WeakList(); + + list.add("hello"); + assertEquals(1, list.size()); + + list.clear(); + assertEquals(0, list.size()); + } + } \ No newline at end of file