You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2003/12/29 16:35:54 UTC
cvs commit: jakarta-commons/collections/src/java/org/apache/commons/collections ReferenceMap.java
scolebourne 2003/12/29 07:35:54
Modified: collections/src/java/org/apache/commons/collections
ReferenceMap.java
Log:
Ensure that the keySet and values views handle removed elements
bug 25551, from Joe Raysa
Revision Changes Path
1.20 +27 -4 jakarta-commons/collections/src/java/org/apache/commons/collections/ReferenceMap.java
Index: ReferenceMap.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/ReferenceMap.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- ReferenceMap.java 6 Dec 2003 13:03:15 -0000 1.19
+++ ReferenceMap.java 29 Dec 2003 15:35:54 -0000 1.20
@@ -706,7 +706,7 @@
if (keySet != null) return keySet;
keySet = new AbstractSet() {
public int size() {
- return size;
+ return ReferenceMap.this.size();
}
public Iterator iterator() {
@@ -727,6 +727,17 @@
ReferenceMap.this.clear();
}
+ public Object[] toArray() {
+ return toArray(new Object[0]);
+ }
+
+ public Object[] toArray(Object[] array) {
+ Collection c = new ArrayList(size());
+ for (Iterator it = iterator(); it.hasNext(); ) {
+ c.add(it.next());
+ }
+ return c.toArray(array);
+ }
};
return keySet;
}
@@ -741,7 +752,7 @@
if (values != null) return values;
values = new AbstractCollection() {
public int size() {
- return size;
+ return ReferenceMap.this.size();
}
public void clear() {
@@ -750,6 +761,18 @@
public Iterator iterator() {
return new ValueIterator();
+ }
+
+ public Object[] toArray() {
+ return toArray(new Object[0]);
+ }
+
+ public Object[] toArray(Object[] array) {
+ Collection c = new ArrayList(size());
+ for (Iterator it = iterator(); it.hasNext(); ) {
+ c.add(it.next());
+ }
+ return c.toArray(array);
}
};
return values;
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org