Author: toad
Date: 2007-02-22 02:23:06 +0000 (Thu, 22 Feb 2007)
New Revision: 11897
Modified:
trunk/freenet/src/freenet/client/ArchiveStoreContext.java
trunk/freenet/src/freenet/client/ArchiveStoreItem.java
trunk/freenet/src/freenet/client/RealArchiveStoreItem.java
Log:
Maybe fix some archive problems
Modified: trunk/freenet/src/freenet/client/ArchiveStoreContext.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveStoreContext.java 2007-02-22
02:07:15 UTC (rev 11896)
+++ trunk/freenet/src/freenet/client/ArchiveStoreContext.java 2007-02-22
02:23:06 UTC (rev 11897)
@@ -121,8 +121,9 @@
public void removeItem(ArchiveStoreItem item) {
long spaceUsed = item.spaceUsed();
synchronized(myItems) {
- if(myItems.remove(item) == null) return;
+ if(myItems.remove(item) == null) return; // only
removed once
}
+ item.innerClose();
manager.decrementSpace(spaceUsed);
}
Modified: trunk/freenet/src/freenet/client/ArchiveStoreItem.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveStoreItem.java 2007-02-22
02:07:15 UTC (rev 11896)
+++ trunk/freenet/src/freenet/client/ArchiveStoreItem.java 2007-02-22
02:23:06 UTC (rev 11897)
@@ -19,11 +19,14 @@
this.context = context;
context.addItem(this);
}
+
+ /** Delete any stored data on disk etc. Override in subtypes for
specific cleanup. */
+ void innerClose() { } // override in subtypes for cleanup
- /** Expected to delete any stored data on disk, and decrement
cachedData.
- * Implemented to remove self from context.
+ /**
+ * Shortcut to start the removal/cleanup process.
*/
- void close() {
+ final void close() {
context.removeItem(this);
}
Modified: trunk/freenet/src/freenet/client/RealArchiveStoreItem.java
===================================================================
--- trunk/freenet/src/freenet/client/RealArchiveStoreItem.java 2007-02-22
02:07:15 UTC (rev 11896)
+++ trunk/freenet/src/freenet/client/RealArchiveStoreItem.java 2007-02-22
02:23:06 UTC (rev 11897)
@@ -14,7 +14,6 @@
class RealArchiveStoreItem extends ArchiveStoreItem {
private final ArchiveManager manager;
- private boolean finalized;
private final File myFilename;
private final PaddedEphemerallyEncryptedBucket bucket;
private final FileBucket underBucket;
@@ -30,7 +29,6 @@
RealArchiveStoreItem(ArchiveManager manager, ArchiveStoreContext ctx,
FreenetURI key2, String realName, TempStoreElement temp) {
super(new ArchiveKey(key2, realName), ctx);
this.manager = manager;
- this.finalized = false;
this.bucket = temp.bucket;
this.underBucket = temp.underBucket;
underBucket.setReadOnly();
@@ -60,12 +58,7 @@
return spaceUsed;
}
- void close() {
- super.close();
- synchronized(this) {
- if(finalized) return;
- finalized = true;
- }
+ void innerClose() {
underBucket.finalize();
}