Author: toad
Date: 2009-03-27 18:54:01 +0000 (Fri, 27 Mar 2009)
New Revision: 26244

Modified:
   branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java
   branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java
   branches/db4o/freenet/src/freenet/support/io/TempFileBucket.java
Log:
Fix temp files: delete on exit is separate from delete on free.


Modified: 
branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java  
2009-03-27 18:39:43 UTC (rev 26243)
+++ branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java  
2009-03-27 18:54:01 UTC (rev 26244)
@@ -8,7 +8,7 @@
 public class PersistentTempFileBucket extends TempFileBucket {
 
        protected PersistentTempFileBucket(long id, FilenameGenerator 
generator) {
-               super(id, generator, false);
+               super(id, generator, false, true);
        }
 
        @Override

Modified: branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java 
2009-03-27 18:39:43 UTC (rev 26243)
+++ branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java 
2009-03-27 18:54:01 UTC (rev 26244)
@@ -543,7 +543,7 @@
        private final Queue<WeakReference<TempBucket>> ramBucketQueue = new 
LinkedBlockingQueue<WeakReference<TempBucket>>();
        
        private Bucket _makeFileBucket() {
-               Bucket fileBucket = new 
TempFileBucket(filenameGenerator.makeRandomFilename(), filenameGenerator, true);
+               Bucket fileBucket = new 
TempFileBucket(filenameGenerator.makeRandomFilename(), filenameGenerator, true, 
true);
                // Do we want it to be encrypted?
                return (reallyEncrypt ? new 
PaddedEphemerallyEncryptedBucket(fileBucket, 1024, strongPRNG, weakPRNG) : 
fileBucket);
        }

Modified: branches/db4o/freenet/src/freenet/support/io/TempFileBucket.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/TempFileBucket.java    
2009-03-27 18:39:43 UTC (rev 26243)
+++ branches/db4o/freenet/src/freenet/support/io/TempFileBucket.java    
2009-03-27 18:54:01 UTC (rev 26244)
@@ -25,6 +25,7 @@
        private static boolean logDebug = true;
        private boolean readOnly;
        private final boolean deleteOnExit;
+       private final boolean deleteOnFree;
        /**
         * Constructor for the TempFileBucket object
         *
@@ -32,11 +33,12 @@
         */
        public TempFileBucket(
                long id,
-               FilenameGenerator generator, boolean deleteOnExit) {
+               FilenameGenerator generator, boolean deleteOnExit, boolean 
deleteOnFree) {
                super(generator.getFilename(id));
                this.filenameID = id;
                this.generator = generator;
                this.deleteOnExit = deleteOnExit;
+               this.deleteOnFree = deleteOnFree;
                synchronized(this) {
                        logDebug = Logger.shouldLog(Logger.DEBUG, this);
                }
@@ -47,7 +49,7 @@
                        if (logDebug)
                                Logger.debug(
                                        this,
-                                       "Initializing TempFileBucket(" + 
getFile());
+                                       "Initializing TempFileBucket(" + 
getFile()+" deleteOnExit="+deleteOnExit);
                }
                if(deleteOnExit)
                        setDeleteOnExit(getFile());
@@ -75,7 +77,7 @@
 
        @Override
        protected boolean deleteOnFree() {
-               return true;
+               return deleteOnFree;
        }
 
        @Override
@@ -109,7 +111,7 @@
        }
 
        public Bucket createShadow() throws IOException {
-               TempFileBucket ret = new TempFileBucket(filenameID, generator, 
false);
+               TempFileBucket ret = new TempFileBucket(filenameID, generator, 
deleteOnExit, false);
                ret.setReadOnly();
                if(!getFile().exists()) Logger.error(this, "File does not exist 
when creating shadow: "+getFile());
                return ret;

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to