Author: toad
Date: 2009-03-07 14:44:56 +0000 (Sat, 07 Mar 2009)
New Revision: 25938
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 shadow buckets for tempfile-based buckets: we were removing the underlying
tempfile on free(), this is *bad*!
Modified:
branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java
2009-03-07 14:13:29 UTC (rev 25937)
+++ branches/db4o/freenet/src/freenet/support/io/PersistentTempFileBucket.java
2009-03-07 14:44:56 UTC (rev 25938)
@@ -8,7 +8,7 @@
public class PersistentTempFileBucket extends TempFileBucket {
protected PersistentTempFileBucket(long id, FilenameGenerator
generator) {
- super(id, generator);
+ super(id, generator, false);
}
@Override
Modified: branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java
2009-03-07 14:13:29 UTC (rev 25937)
+++ branches/db4o/freenet/src/freenet/support/io/TempBucketFactory.java
2009-03-07 14:44:56 UTC (rev 25938)
@@ -543,7 +543,7 @@
private final Queue<WeakReference<TempBucket>> ramBucketQueue = new
LinkedBlockingQueue<WeakReference<TempBucket>>();
private Bucket _makeFileBucket() {
- Bucket fileBucket = new
TempFileBucket(filenameGenerator.makeRandomFilename(), filenameGenerator);
+ Bucket fileBucket = new
TempFileBucket(filenameGenerator.makeRandomFilename(), filenameGenerator, 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-07 14:13:29 UTC (rev 25937)
+++ branches/db4o/freenet/src/freenet/support/io/TempFileBucket.java
2009-03-07 14:44:56 UTC (rev 25938)
@@ -24,6 +24,7 @@
final FilenameGenerator generator;
private static boolean logDebug = true;
private boolean readOnly;
+ private final boolean deleteOnFinalize;
/**
* Constructor for the TempFileBucket object
*
@@ -31,10 +32,11 @@
*/
public TempFileBucket(
long id,
- FilenameGenerator generator) {
+ FilenameGenerator generator, boolean deleteOnFinalize) {
super(generator.getFilename(id));
this.filenameID = id;
this.generator = generator;
+ this.deleteOnFinalize = deleteOnFinalize;
synchronized(this) {
logDebug = Logger.shouldLog(Logger.DEBUG, this);
}
@@ -53,7 +55,7 @@
protected boolean deleteOnFinalize() {
// Make sure finalize wacks temp file
// if it is not explictly freed.
- return true;
+ return deleteOnFinalize;
}
@Override
@@ -105,7 +107,7 @@
}
public Bucket createShadow() throws IOException {
- TempFileBucket ret = new TempFileBucket(filenameID, generator);
+ TempFileBucket ret = new TempFileBucket(filenameID, generator,
false);
ret.setReadOnly();
return ret;
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs