Author: toad
Date: 2008-12-19 00:39:18 +0000 (Fri, 19 Dec 2008)
New Revision: 24548
Modified:
branches/db4o/freenet/src/freenet/client/ArchiveStoreContext.java
Log:
Fix temp bucket leak in archive code. Also logging.
Modified: branches/db4o/freenet/src/freenet/client/ArchiveStoreContext.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/ArchiveStoreContext.java
2008-12-19 00:37:34 UTC (rev 24547)
+++ branches/db4o/freenet/src/freenet/client/ArchiveStoreContext.java
2008-12-19 00:39:18 UTC (rev 24548)
@@ -5,6 +5,7 @@
import freenet.keys.FreenetURI;
import freenet.support.DoublyLinkedListImpl;
+import freenet.support.Logger;
import freenet.support.compress.Compressor.COMPRESSOR_TYPE;
/**
@@ -66,7 +67,8 @@
ArchiveStoreItem item = null;
while(true) {
synchronized (myItems) {
- item = (ArchiveStoreItem) myItems.pop();
+ // removeCachedItem() will call removeItem(),
so don't remove it here.
+ item = (ArchiveStoreItem) myItems.head();
}
if(item == null) break;
manager.removeCachedItem(item);
@@ -85,7 +87,11 @@
* necessary. */
void removeItem(ArchiveStoreItem item) {
synchronized(myItems) {
- if(myItems.remove(item) == null) return; // only
removed once
+ if(myItems.remove(item) == null) {
+ if(Logger.shouldLog(Logger.MINOR, this))
+ Logger.minor(this, "Not removing:
"+item+" for "+this+" - already removed");
+ return; // only removed once
+ }
}
item.innerClose();
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs