You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2003/05/06 13:19:27 UTC
cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections TestReferenceMap.java
rdonkin 2003/05/06 04:19:26
Modified: collections/src/java/org/apache/commons/collections
ReferenceMap.java
collections/src/test/org/apache/commons/collections
TestReferenceMap.java
Log:
Rolled back last commit. Accidentally committed everything in commons when I just wanted to commit docs and xdocs. Doh!
Revision Changes Path
1.10 +1 -48 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.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ReferenceMap.java 6 May 2003 10:24:01 -0000 1.9
+++ ReferenceMap.java 6 May 2003 11:19:26 -0000 1.10
@@ -175,11 +175,6 @@
* @serial
*/
private float loadFactor;
-
- /**
- * Should the value be automatically purged when the associated key has been collected?
- */
- private boolean purgeValues = false;
// -- Non-serialized instance variables
@@ -242,21 +237,6 @@
this(HARD, SOFT);
}
- /**
- * Constructs a new <Code>ReferenceMap</Code> that will
- * use the specified types of references.
- *
- * @param keyType the type of reference to use for keys;
- * must be {@link #HARD}, {@link #SOFT}, {@link #WEAK}
- * @param valueType the type of reference to use for values;
- * must be {@link #HARD}, {@link #SOFT}, {@link #WEAK}
- * @param purgeValues should the value be automatically purged when the
- * key is garbage collected
- */
- public ReferenceMap(int keyType, int valueType, boolean purgeValues) {
- this(keyType, valueType);
- this.purgeValues = purgeValues;
- }
/**
* Constructs a new <Code>ReferenceMap</Code> that will
@@ -271,29 +251,6 @@
this(keyType, valueType, 16, 0.75f);
}
- /**
- * Constructs a new <Code>ReferenceMap</Code> with the
- * specified reference types, load factor and initial
- * capacity.
- *
- * @param keyType the type of reference to use for keys;
- * must be {@link #HARD}, {@link #SOFT}, {@link #WEAK}
- * @param valueType the type of reference to use for values;
- * must be {@link #HARD}, {@link #SOFT}, {@link #WEAK}
- * @param capacity the initial capacity for the map
- * @param loadFactor the load factor for the map
- * @param purgeValues should the value be automatically purged when the
- * key is garbage collected
- */
- public ReferenceMap(
- int keyType,
- int valueType,
- int capacity,
- float loadFactor,
- boolean purgeValues) {
- this(keyType, valueType, capacity, loadFactor);
- this.purgeValues = purgeValues;
- }
/**
* Constructs a new <Code>ReferenceMap</Code> with the
@@ -821,11 +778,7 @@
r = r || ((valueType > HARD) && (value == ref));
if (r) {
if (keyType > HARD) ((Reference)key).clear();
- if (valueType > HARD) {
- ((Reference)value).clear();
- } else if (purgeValues) {
- value = null;
- }
+ if (valueType > HARD) ((Reference)value).clear();
}
return r;
}
1.7 +1 -42 jakarta-commons/collections/src/test/org/apache/commons/collections/TestReferenceMap.java
Index: TestReferenceMap.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestReferenceMap.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestReferenceMap.java 6 May 2003 10:24:01 -0000 1.6
+++ TestReferenceMap.java 6 May 2003 11:19:26 -0000 1.7
@@ -61,8 +61,6 @@
package org.apache.commons.collections;
-import java.lang.ref.WeakReference;
-
import java.util.Map;
import junit.framework.Test;
@@ -188,44 +186,5 @@
return "2.1";
}
- /** Tests whether purge values setting works */
- public void testPurgeValues() throws Exception {
- // many thanks to Juozas Baliuka for suggesting this method
- Object key = new Object();
- Object value = new Object();
-
- WeakReference keyReference = new WeakReference(key);
- WeakReference valueReference = new WeakReference(value);
-
- Map testMap = new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.HARD, true);
- testMap.put(key, value);
-
- assertEquals("In map", value, testMap.get(key));
- assertNotNull("Weak reference released early (1)", keyReference.get());
- assertNotNull("Weak reference released early (2)", valueReference.get());
-
- // dereference strong references
- key = null;
- value = null;
-
- int iterations = 0;
- int bytz = 2;
- while(true) {
- System.gc();
- if(iterations++ > 50){
- fail("Max iterations reached before resource released.");
- }
- testMap.isEmpty();
- if(
- keyReference.get() == null &&
- valueReference.get() == null) {
- break;
-
- } else {
- // create garbage:
- byte[] b = new byte[bytz];
- bytz = bytz * 2;
- }
- }
- }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org