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