Author: j16sdiz
Date: 2008-11-25 10:34:53 +0000 (Tue, 25 Nov 2008)
New Revision: 23850

Modified:
   trunk/freenet/src/freenet/support/io/TempBucketFactory.java
Log:
better leak fix (see r23847)

Modified: trunk/freenet/src/freenet/support/io/TempBucketFactory.java
===================================================================
--- trunk/freenet/src/freenet/support/io/TempBucketFactory.java 2008-11-25 
08:25:17 UTC (rev 23849)
+++ trunk/freenet/src/freenet/support/io/TempBucketFactory.java 2008-11-25 
10:34:53 UTC (rev 23850)
@@ -346,11 +346,17 @@
                        if(isRAMBucket()) {
                                _hasFreed(currentSize);
                                synchronized(ramBucketQueue) {
-                                       ramBucketQueue.remove(this); // FIXME
+                                       ramBucketQueue.remove(getReference());
                                }
                        }
                }
                
+               private WeakReference<TempBucket> weakRef = new 
WeakReference<TempBucket>(this);
+
+               public WeakReference<TempBucket> getReference() {
+                       return weakRef;
+               }
+               
                protected void finalize() {
                        if (!hasBeenFreed) {
                                Logger.normal(this, "TempBucket not freed, 
size=" + size() + ", isRAMBucket=" + isRAMBucket());
@@ -451,7 +457,7 @@
                TempBucket toReturn = new TempBucket(now, realBucket);
                if(useRAMBucket) { // No need to consider them for migration if 
they can't be migrated
                        synchronized(ramBucketQueue) {
-                               ramBucketQueue.add(new 
WeakReference<TempBucket>(toReturn));
+                               ramBucketQueue.add(toReturn.getReference());
                        }
                }
                return toReturn;

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to