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 2005/05/07 19:26:58 UTC
svn commit: r169101 - in /jakarta/commons/proper/collections/trunk:
project.xml src/test/org/apache/commons/collections/TestReferenceMap.java
src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java
src/test/org/apache/commons/collections/map/TestReferenceMap.java
Author: scolebourne
Date: Sat May 7 10:26:58 2005
New Revision: 169101
URL: http://svn.apache.org/viewcvs?rev=169101&view=rev
Log:
Fix so references are properly cleared on Kaffe JVM
bug 34689, by Guilhem Lavaux
Modified:
jakarta/commons/proper/collections/trunk/project.xml
jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/TestReferenceMap.java
jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java
jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceMap.java
Modified: jakarta/commons/proper/collections/trunk/project.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/project.xml?rev=169101&r1=169100&r2=169101&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/project.xml (original)
+++ jakarta/commons/proper/collections/trunk/project.xml Sat May 7 10:26:58 2005
@@ -219,6 +219,9 @@
<name>Olaf Krische</name>
</contributor>
<contributor>
+ <name>Guilhem Lavaux</name>
+ </contributor>
+ <contributor>
<name>David Leppik</name>
</contributor>
<contributor>
Modified: jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/TestReferenceMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/TestReferenceMap.java?rev=169101&r1=169100&r2=169101&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/TestReferenceMap.java (original)
+++ jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/TestReferenceMap.java Sat May 7 10:26:58 2005
@@ -28,6 +28,7 @@
* @version $Revision$ $Date$
*
* @author Paul Jack
+ * @author Guilhem Lavaux
*/
public class TestReferenceMap extends AbstractTestMap {
@@ -152,25 +153,30 @@
}
*/
- /** Tests whether purge values setting works */
- public void testPurgeValues() throws Exception {
- // many thanks to Juozas Baliuka for suggesting this method
+ WeakReference keyReference;
+ WeakReference valueReference;
+
+ public Map buildRefMap() {
Object key = new Object();
Object value = new Object();
- WeakReference keyReference = new WeakReference(key);
- WeakReference valueReference = new WeakReference(value);
+ keyReference = new WeakReference(key);
+ 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;
+ return testMap;
+ }
+
+ /** Tests whether purge values setting works */
+ public void testPurgeValues() throws Exception {
+ // many thanks to Juozas Baliuka for suggesting this method
+
+ Map testMap = buildRefMap();
int iterations = 0;
int bytz = 2;
Modified: jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java?rev=169101&r1=169100&r2=169101&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java (original)
+++ jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceIdentityMap.java Sat May 7 10:26:58 2005
@@ -31,6 +31,7 @@
*
* @author Paul Jack
* @author Stephen Colebourne
+ * @author Guilhem Lavaux
*/
public class TestReferenceIdentityMap extends AbstractTestIterableMap {
@@ -261,25 +262,29 @@
}
*/
- /** Tests whether purge values setting works */
- public void testPurgeValues() throws Exception {
- // many thanks to Juozas Baliuka for suggesting this method
+ WeakReference keyReference;
+ WeakReference valueReference;
+
+ public Map buildRefMap() {
Object key = new Object();
Object value = new Object();
- WeakReference keyReference = new WeakReference(key);
- WeakReference valueReference = new WeakReference(value);
+ keyReference = new WeakReference(key);
+ valueReference = new WeakReference(value);
- Map testMap = new ReferenceIdentityMap(ReferenceIdentityMap.WEAK, ReferenceIdentityMap.HARD, true);
+ Map testMap = new ReferenceIdentityMap(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;
+ return testMap;
+ }
+
+ /** Tests whether purge values setting works */
+ public void testPurgeValues() throws Exception {
+ // many thanks to Juozas Baliuka for suggesting this method
+ Map testMap = buildRefMap();
int iterations = 0;
int bytz = 2;
Modified: jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceMap.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceMap.java?rev=169101&r1=169100&r2=169101&view=diff
==============================================================================
--- jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceMap.java (original)
+++ jakarta/commons/proper/collections/trunk/src/test/org/apache/commons/collections/map/TestReferenceMap.java Sat May 7 10:26:58 2005
@@ -28,6 +28,7 @@
* @version $Revision$ $Date$
*
* @author Paul Jack
+ * @author Guilhem Lavaux
*/
public class TestReferenceMap extends AbstractTestIterableMap {
@@ -196,26 +197,30 @@
}
*/
- /** Tests whether purge values setting works */
- public void testPurgeValues() throws Exception {
- // many thanks to Juozas Baliuka for suggesting this method
+ WeakReference keyReference;
+ WeakReference valueReference;
+
+ public Map buildRefMap() {
Object key = new Object();
Object value = new Object();
- WeakReference keyReference = new WeakReference(key);
- WeakReference valueReference = new WeakReference(value);
+ keyReference = new WeakReference(key);
+ 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;
-
+ return testMap;
+ }
+
+ /** Tests whether purge values setting works */
+ public void testPurgeValues() throws Exception {
+ // many thanks to Juozas Baliuka for suggesting this method
+ Map testMap = buildRefMap();
+
int iterations = 0;
int bytz = 2;
while(true) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org