[freenet-cvs] r14599 - trunk/freenet/src/freenet/client

toad at freenetproject.org toad at freenetproject.org
Sat Aug 11 13:02:45 UTC 2007


Author: toad
Date: 2007-08-11 13:02:45 +0000 (Sat, 11 Aug 2007)
New Revision: 14599

Modified:
   trunk/freenet/src/freenet/client/ArchiveManager.java
   trunk/freenet/src/freenet/client/ArchiveStoreContext.java
Log:
more comments, sync/space usage consistency fixes

Modified: trunk/freenet/src/freenet/client/ArchiveManager.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveManager.java	2007-08-11 12:56:10 UTC (rev 14598)
+++ trunk/freenet/src/freenet/client/ArchiveManager.java	2007-08-11 13:02:45 UTC (rev 14599)
@@ -143,7 +143,8 @@
 	}
 	
 	/**
-	 * Remove a file from the cache.
+	 * Remove a file from the cache. Called after it has been removed from its 
+	 * ArchiveHandler.
 	 * @param item The ArchiveStoreItem to remove.
 	 */
 	synchronized void removeCachedItem(ArchiveStoreItem item) {
@@ -390,9 +391,11 @@
 		synchronized (this) {
 			oldItem = (ArchiveStoreItem) storedData.get(element.key);
 			storedData.push(element.key, element);	
+			if(oldItem != null) {
+				oldItem.close();
+				cachedData -= oldItem.spaceUsed();
+			}
 		}
-		if(oldItem != null)
-			oldItem.close();
 	}
 
 	/**

Modified: trunk/freenet/src/freenet/client/ArchiveStoreContext.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveStoreContext.java	2007-08-11 12:56:10 UTC (rev 14598)
+++ trunk/freenet/src/freenet/client/ArchiveStoreContext.java	2007-08-11 13:02:45 UTC (rev 14599)
@@ -110,7 +110,6 @@
 			}
 			if(item == null) break;
 			manager.removeCachedItem(item);
-			item.context.removeItem(item);
 		}
 	}
 
@@ -121,7 +120,9 @@
 		}
 	}
 
-	/** Notify that an archive store item with this key has been expelled from the cache. */
+	/** Notify that an archive store item with this key has been expelled from the 
+	 * cache. Remove it from our local cache and ask it to free the bucket if 
+	 * necessary. */
 	public void removeItem(ArchiveStoreItem item) {
 		synchronized(myItems) {
 			if(myItems.remove(item) == null) return; // only removed once




More information about the cvs mailing list