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();
        }



Reply via email to