Author: toad
Date: 2006-08-04 00:13:58 +0000 (Fri, 04 Aug 2006)
New Revision: 9876
Modified:
trunk/freenet/src/freenet/client/async/ClientGetter.java
trunk/freenet/src/freenet/client/async/ClientPutter.java
trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
trunk/freenet/src/freenet/client/async/SingleFileInserter.java
trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
trunk/freenet/src/freenet/client/async/SplitFileInserter.java
trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
trunk/freenet/src/freenet/client/async/USKFetcher.java
trunk/freenet/src/freenet/client/async/USKManager.java
trunk/freenet/src/freenet/clients/http/BookmarkManager.java
trunk/freenet/src/freenet/node/Version.java
trunk/freenet/src/freenet/node/fcp/ClientGet.java
trunk/freenet/src/freenet/node/fcp/ClientRequest.java
trunk/freenet/src/freenet/support/io/FilenameGenerator.java
trunk/freenet/src/freenet/support/io/TempBucketFactory.java
Log:
923: Fix several disk space leaks.
Modified: trunk/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientGetter.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/ClientGetter.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -125,13 +125,15 @@
public void cancel() {
Logger.minor(this, "Cancelling "+this);
+ super.cancel();
+ ClientGetState s;
synchronized(this) {
- super.cancel();
- if(currentState != null) {
- Logger.minor(this, "Cancelling "+currentState);
- currentState.cancel();
- }
+ s = currentState;
}
+ if(s != null) {
+ Logger.minor(this, "Cancelling "+currentState);
+ s.cancel();
+ }
}
public synchronized boolean isFinished() {
Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -70,7 +70,7 @@
cancel = this.cancelled;
if(!cancel) {
currentState =
- new SingleFileInserter(this,
this, new InsertBlock(data, cm, targetURI), isMetadata, ctx, false, getCHKOnly,
false, null, false);
+ new SingleFileInserter(this,
this, new InsertBlock(data, cm, targetURI), isMetadata, ctx, false, getCHKOnly,
false, null, false, false);
}
}
if(cancel) {
Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -37,7 +37,7 @@
InsertBlock block =
new InsertBlock(data, cm,
FreenetURI.EMPTY_CHK_URI);
this.origSFI =
- new SingleFileInserter(this, this, block,
false, ctx, false, getCHKOnly, true, null, false);
+ new SingleFileInserter(this, this, block,
false, ctx, false, getCHKOnly, true, null, false, false);
metadata = null;
}
@@ -414,7 +414,7 @@
block = new InsertBlock(bucket, null, targetURI);
try {
SingleFileInserter metadataInserter =
- new SingleFileInserter(this, this, block,
isMetadata, ctx, false, getCHKOnly, false, baseMetadata,
insertAsArchiveManifest);
+ new SingleFileInserter(this, this, block,
isMetadata, ctx, false, getCHKOnly, false, baseMetadata,
insertAsArchiveManifest, true);
Logger.minor(this, "Inserting main metadata:
"+metadataInserter);
this.metadataPuttersByMetadata.put(baseMetadata,
metadataInserter);
metadataInserter.start(null);
@@ -438,7 +438,7 @@
InsertBlock ib = new InsertBlock(b, null,
FreenetURI.EMPTY_CHK_URI);
SingleFileInserter metadataInserter =
- new SingleFileInserter(this, this, ib,
true, ctx, false, getCHKOnly, false, m, false);
+ new SingleFileInserter(this, this, ib,
true, ctx, false, getCHKOnly, false, m, false, true);
Logger.minor(this, "Inserting subsidiary
metadata: "+metadataInserter+" for "+m);
synchronized(this) {
this.metadataPuttersByMetadata.put(m,
metadataInserter);
Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -572,7 +572,7 @@
} else {
// Do a thorough, blocking search
USKFetcher fetcher =
-
ctx.uskManager.getFetcher(usk.copy(-usk.suggestedEdition), ctx, parent);
+
ctx.uskManager.getFetcher(usk.copy(-usk.suggestedEdition), ctx, parent, false);
if(isEssential)
parent.addMustSucceedBlocks(1);
fetcher.addCallback(new MyUSKFetcherCallback(parent,
cb, clientMetadata, usk, metaStrings, ctx, actx, maxRetries, recursionLevel,
dontTellClientGet, token, returnBucket));
Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -45,6 +45,7 @@
* update our parent to point to us as current put-stage. */
private final boolean reportMetadataOnly;
public final Object token;
+ private final boolean freeData;
/**
* @param parent
@@ -56,11 +57,12 @@
* @param getCHKOnly
* @param reportMetadataOnly If true, don't insert the metadata, just
report it.
* @param insertAsArchiveManifest If true, insert the metadata as an
archive manifest.
+ * @param freeData If true, free the data when possible.
* @throws InserterException
*/
SingleFileInserter(BaseClientPutter parent, PutCompletionCallback cb,
InsertBlock block,
boolean metadata, InserterContext ctx, boolean
dontCompress,
- boolean getCHKOnly, boolean reportMetadataOnly, Object
token, boolean insertAsArchiveManifest) throws InserterException {
+ boolean getCHKOnly, boolean reportMetadataOnly, Object
token, boolean insertAsArchiveManifest, boolean freeData) throws
InserterException {
this.reportMetadataOnly = reportMetadataOnly;
this.token = token;
this.parent = parent;
@@ -70,6 +72,7 @@
this.cb = cb;
this.getCHKOnly = getCHKOnly;
this.insertAsArchiveManifest = insertAsArchiveManifest;
+ this.freeData = freeData;
}
public void start(SimpleFieldSet fs) throws InserterException {
@@ -236,12 +239,12 @@
// insert it. Then when the splitinserter has finished, and the
// metadata insert has finished too, tell the master callback.
if(reportMetadataOnly) {
- SplitFileInserter sfi = new SplitFileInserter(parent,
cb, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest);
+ SplitFileInserter sfi = new SplitFileInserter(parent,
cb, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest, false);
cb.onTransition(this, sfi);
sfi.start();
} else {
SplitHandler sh = new SplitHandler();
- SplitFileInserter sfi = new SplitFileInserter(parent,
sh, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest);
+ SplitFileInserter sfi = new SplitFileInserter(parent,
sh, data, bestCodec, block.clientMetadata, ctx, getCHKOnly, metadata, token,
insertAsArchiveManifest, false);
sh.sfi = sfi;
cb.onTransition(this, sh);
sfi.start();
@@ -408,7 +411,7 @@
InsertBlock newBlock = new InsertBlock(metadataBucket,
null, block.desiredURI);
try {
synchronized(this) {
- metadataPutter = new
SingleFileInserter(parent, this, newBlock, true, ctx, false, getCHKOnly, false,
token, false);
+ metadataPutter = new
SingleFileInserter(parent, this, newBlock, true, ctx, false, getCHKOnly, false,
token, false, true);
}
Logger.minor(this, "Putting metadata on
"+metadataPutter+" from "+sfi+" ("+((SplitFileInserter)sfi).getLength());
} catch (InserterException e1) {
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -218,41 +218,51 @@
// Now heal
- // Encode any check blocks we don't have
- if(codec != null) {
- try {
- codec.encode(dataBuckets, checkBuckets,
32768, fetcherContext.bucketFactory);
- } catch (IOException e) {
- Logger.error(this, "Bucket error while
healing: "+e, e);
- }
- }
+// // Encode any check blocks we don't have
+// if(codec != null) {
+// try {
+// codec.encode(dataBuckets, checkBuckets,
32768, fetcherContext.bucketFactory);
+// } catch (IOException e) {
+// Logger.error(this, "Bucket error while
healing: "+e, e);
+// }
+// }
+//
+// // Now insert *ALL* blocks on which we had at least one
failure, and didn't eventually succeed
+// for(int i=0;i<dataBlockStatus.length;i++) {
+// if(dataBuckets[i].getData() != null) continue;
+// SingleFileFetcher fetcher = dataBlockStatus[i];
+// if(fetcher.getRetryCount() == 0) {
+// // 80% chance of not inserting, if we
never tried it
+// if(fetcherContext.random.nextInt(5) ==
0) continue;
+// }
+// queueHeal(dataBuckets[i].getData());
+// }
+// for(int i=0;i<checkBlockStatus.length;i++) {
+// if(checkBuckets[i].getData() != null) continue;
+// SingleFileFetcher fetcher = checkBlockStatus[i];
+// if(fetcher.getRetryCount() == 0) {
+// // 80% chance of not inserting, if we
never tried it
+// if(fetcherContext.random.nextInt(5) ==
0) continue;
+// }
+// queueHeal(checkBuckets[i].getData());
+// }
- // Now insert *ALL* blocks on which we had at least one
failure, and didn't eventually succeed
- for(int i=0;i<dataBlockStatus.length;i++) {
- if(dataBuckets[i].getData() != null) continue;
- SingleFileFetcher fetcher = dataBlockStatus[i];
- if(fetcher.getRetryCount() == 0) {
- // 80% chance of not inserting, if we
never tried it
- if(fetcherContext.random.nextInt(5) ==
0) continue;
+ for(int i=0;i<dataBlocks.length;i++) {
+ MinimalSplitfileBlock b = dataBuckets[i];
+ if(b != null) {
+ Bucket d = b.getData();
+ if(d != null) d.free();
}
- queueHeal(dataBuckets[i].getData());
- }
- for(int i=0;i<checkBlockStatus.length;i++) {
- if(checkBuckets[i].getData() != null) continue;
- SingleFileFetcher fetcher = checkBlockStatus[i];
- if(fetcher.getRetryCount() == 0) {
- // 80% chance of not inserting, if we
never tried it
- if(fetcherContext.random.nextInt(5) ==
0) continue;
- }
- queueHeal(checkBuckets[i].getData());
- }
-
- for(int i=0;i<dataBlocks.length;i++) {
dataBuckets[i] = null;
dataBlockStatus[i] = null;
dataBlocks[i] = null;
}
for(int i=0;i<checkBlocks.length;i++) {
+ MinimalSplitfileBlock b = checkBuckets[i];
+ if(b != null) {
+ Bucket d = b.getData();
+ if(d != null) d.free();
+ }
checkBuckets[i] = null;
checkBlockStatus[i] = null;
checkBlocks[i] = null;
@@ -311,11 +321,23 @@
SingleFileFetcher f = dataBlockStatus[i];
if(f != null)
f.cancel();
+ MinimalSplitfileBlock b = dataBuckets[i];
+ if(b != null) {
+ Bucket d = b.getData();
+ if(d != null) d.free();
+ }
+ dataBuckets[i] = null;
}
for(int i=0;i<checkBlockStatus.length;i++) {
- SingleFileFetcher f = dataBlockStatus[i];
+ SingleFileFetcher f = checkBlockStatus[i];
if(f != null)
f.cancel();
+ MinimalSplitfileBlock b = checkBuckets[i];
+ if(b != null) {
+ Bucket d = b.getData();
+ if(d != null) d.free();
+ }
+ checkBuckets[i] = null;
}
parentFetcher.segmentFinished(this);
}
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserter.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -58,7 +58,7 @@
return fs;
}
- public SplitFileInserter(BaseClientPutter put, PutCompletionCallback
cb, Bucket data, Compressor bestCodec, ClientMetadata clientMetadata,
InserterContext ctx, boolean getCHKOnly, boolean isMetadata, Object token,
boolean insertAsArchiveManifest) throws InserterException {
+ public SplitFileInserter(BaseClientPutter put, PutCompletionCallback
cb, Bucket data, Compressor bestCodec, ClientMetadata clientMetadata,
InserterContext ctx, boolean getCHKOnly, boolean isMetadata, Object token,
boolean insertAsArchiveManifest, boolean freeData) throws InserterException {
this.parent = put;
this.insertAsArchiveManifest = insertAsArchiveManifest;
this.token = token;
@@ -74,6 +74,7 @@
} catch (IOException e) {
throw new
InserterException(InserterException.BUCKET_ERROR, e, null);
}
+ if(freeData) data.free();
countDataBlocks = dataBuckets.length;
// Encoding is done by segments
if(bestCodec == null)
Modified: trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2006-08-03 23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/SplitFileInserterSegment.java
2006-08-04 00:13:58 UTC (rev 9876)
@@ -545,11 +545,21 @@
SingleBlockInserter sbi = dataBlockInserters[i];
if(sbi != null)
sbi.cancel();
+ Bucket d = dataBlocks[i];
+ if(d != null) {
+ d.free();
+ dataBlocks[i] = null;
+ }
}
for(int i=0;i<checkBlockInserters.length;i++) {
SingleBlockInserter sbi = checkBlockInserters[i];
if(sbi != null)
sbi.cancel();
+ Bucket d = checkBlocks[i];
+ if(d != null) {
+ d.free();
+ checkBlocks[i] = null;
+ }
}
parent.segmentFinished(this);
}
Modified: trunk/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKFetcher.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/USKFetcher.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -181,14 +181,17 @@
/** Keep going forever? */
private final boolean backgroundPoll;
+ /** Keep the last fetched data? */
+ final boolean keepLastData;
+
private boolean started;
- USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx,
ClientRequester parent, int minFailures, boolean pollForever) {
- this(origUSK, manager, ctx, parent, minFailures, pollForever,
DEFAULT_MAX_MIN_FAILURES);
+ USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx,
ClientRequester parent, int minFailures, boolean pollForever, boolean
keepLastData) {
+ this(origUSK, manager, ctx, parent, minFailures, pollForever,
DEFAULT_MAX_MIN_FAILURES, keepLastData);
}
// FIXME use this!
- USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx,
ClientRequester parent, int minFailures, boolean pollForever, long
maxProbeEditions) {
+ USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx,
ClientRequester parent, int minFailures, boolean pollForever, long
maxProbeEditions, boolean keepLastData) {
this.parent = parent;
this.maxMinFailures = maxProbeEditions;
this.origUSK = origUSK;
@@ -201,6 +204,7 @@
lastAddedEdition = -1;
this.ctx = ctx;
this.backgroundPoll = pollForever;
+ this.keepLastData = keepLastData;
}
void onDNF(USKAttempt att) {
@@ -291,9 +295,13 @@
if(completed || cancelled) return;
if(curLatest >= lastEd) {
try {
- this.lastRequestData =
block.decode(ctx.bucketFactory, 1025 /* it's an SSK */, true);
- this.lastCompressionCodec =
block.getCompressionCodec();
- this.lastWasMetadata =
block.isMetadata();
+ Bucket data = lastRequestData =
block.decode(ctx.bucketFactory, 1025 /* it's an SSK */, true);
+ lastCompressionCodec =
block.getCompressionCodec();
+ lastWasMetadata = block.isMetadata();
+ if(keepLastData)
+ lastRequestData = data;
+ else
+ data.free();
} catch (KeyDecodeException e) {
lastRequestData = null;
} catch (IOException e) {
@@ -461,6 +469,7 @@
}
public synchronized void freeLastData() {
+ if(lastRequestData == null) return;
lastRequestData.free();
lastRequestData = null;
}
Modified: trunk/freenet/src/freenet/client/async/USKManager.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKManager.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/client/async/USKManager.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -77,23 +77,23 @@
}
public synchronized USKFetcher getFetcher(USK usk, FetcherContext ctx,
- ClientGetter parent) {
+ ClientGetter parent, boolean keepLastData) {
USKFetcher f = (USKFetcher) fetchersByUSK.get(usk);
USK clear = usk.clearCopy();
if(temporaryBackgroundFetchersLRU.contains(clear))
- temporaryBackgroundFetchersLRU.push(clear);
+ temporaryBackgroundFetchersLRU.push(clear);
if(f != null) {
- if((f.parent.priorityClass == parent.priorityClass) &&
f.ctx.equals(ctx))
+ if((f.parent.priorityClass == parent.priorityClass) &&
f.ctx.equals(ctx) && f.keepLastData == keepLastData)
return f;
}
- f = new USKFetcher(usk, this, ctx, parent, 3, false);
+ f = new USKFetcher(usk, this, ctx, parent, 3, false,
keepLastData);
fetchersByUSK.put(usk, f);
return f;
}
public USKFetcher getFetcherForInsertDontSchedule(USK usk, short
prioClass, USKFetcherCallback cb) {
USKFetcher f = new USKFetcher(usk, this,
backgroundFetchContext,
- new USKFetcherWrapper(usk, prioClass,
chkRequestScheduler, sskRequestScheduler), 3, false);
+ new USKFetcherWrapper(usk, prioClass,
chkRequestScheduler, sskRequestScheduler), 3, false, true);
f.addCallback(cb);
return f;
}
@@ -104,7 +104,7 @@
synchronized(this) {
USKFetcher f = (USKFetcher)
backgroundFetchersByClearUSK.get(clear);
if(f == null) {
- f = new USKFetcher(usk, this,
backgroundFetchContext, new USKFetcherWrapper(usk,
RequestStarter.UPDATE_PRIORITY_CLASS, chkRequestScheduler,
sskRequestScheduler), 10, true);
+ f = new USKFetcher(usk, this,
backgroundFetchContext, new USKFetcherWrapper(usk,
RequestStarter.UPDATE_PRIORITY_CLASS, chkRequestScheduler,
sskRequestScheduler), 10, true, false);
sched = f;
backgroundFetchersByClearUSK.put(clear, f);
}
@@ -175,7 +175,7 @@
if(runBackgroundFetch) {
USKFetcher f = (USKFetcher)
backgroundFetchersByClearUSK.get(clear);
if(f == null) {
- f = new USKFetcher(origUSK, this,
backgroundFetchContext, new USKFetcherWrapper(origUSK,
RequestStarter.UPDATE_PRIORITY_CLASS, chkRequestScheduler,
sskRequestScheduler), 10, true);
+ f = new USKFetcher(origUSK, this,
backgroundFetchContext, new USKFetcherWrapper(origUSK,
RequestStarter.UPDATE_PRIORITY_CLASS, chkRequestScheduler,
sskRequestScheduler), 10, true, false);
sched = f;
backgroundFetchersByClearUSK.put(clear,
f);
}
Modified: trunk/freenet/src/freenet/clients/http/BookmarkManager.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/BookmarkManager.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/clients/http/BookmarkManager.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -145,7 +145,7 @@
if (b.getKeyType().equals("USK")) {
try {
USK u = USK.create(b.key);
- this.node.uskManager.subscribe(u, this.uskcb,
true);
+ this.node.uskManager.unsubscribe(u, this.uskcb,
true);
} catch (MalformedURLException mue) {
}
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-08-03 23:47:12 UTC (rev
9875)
+++ trunk/freenet/src/freenet/node/Version.java 2006-08-04 00:13:58 UTC (rev
9876)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 922;
+ private static final int buildNumber = 923;
/** Oldest build of Fred we will talk to */
private static final int oldLastGoodBuild = 874;
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-08-03 23:47:12 UTC
(rev 9875)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2006-08-04 00:13:58 UTC
(rev 9876)
@@ -95,7 +95,10 @@
targetFile = null;
tempFile = null;
try {
- ret =
client.server.node.persistentTempBucketFactory.makeEncryptedBucket();
+ if(persistenceType == PERSIST_FOREVER)
+ ret =
client.server.node.persistentTempBucketFactory.makeEncryptedBucket();
+ else
+ ret = fctx.bucketFactory.makeBucket(-1);
} catch (IOException e) {
onFailure(new
FetchException(FetchException.BUCKET_ERROR), null);
getter = null;
@@ -149,7 +152,10 @@
targetFile = null;
tempFile = null;
try {
- ret =
handler.server.node.persistentTempBucketFactory.makeEncryptedBucket();
+ if(persistenceType == PERSIST_FOREVER)
+ ret =
client.server.node.persistentTempBucketFactory.makeEncryptedBucket();
+ else
+ ret = fctx.bucketFactory.makeBucket(-1);
} catch (IOException e) {
onFailure(new
FetchException(FetchException.BUCKET_ERROR), null);
getter = null;
@@ -256,11 +262,6 @@
// Otherwise ignore
}
- public void cancel() {
- Logger.minor(this, "Cancelling "+this);
- getter.cancel();
- }
-
public void onSuccess(FetchResult result, ClientGetter state) {
Bucket data = result.asBucket();
if(returnBucket != data)
Modified: trunk/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/node/fcp/ClientRequest.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -177,6 +177,7 @@
ClientRequester cr = getClientRequest();
// It might have been finished on startup.
if(cr != null) cr.cancel();
+ freeData();
}
public boolean isPersistentForever() {
Modified: trunk/freenet/src/freenet/support/io/FilenameGenerator.java
===================================================================
--- trunk/freenet/src/freenet/support/io/FilenameGenerator.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/support/io/FilenameGenerator.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -5,6 +5,7 @@
import freenet.crypt.RandomSource;
import freenet.support.HexUtil;
+import freenet.support.Logger;
public class FilenameGenerator {
@@ -53,7 +54,10 @@
random.nextBytes(randomFilename);
String filename = prefix +
HexUtil.bytesToHex(randomFilename);
File ret = new File(tmpDir, filename);
- if(!ret.exists()) return ret;
+ if(!ret.exists()) {
+ Logger.minor(this, "Made random filename:
"+ret, new Exception("debug"));
+ return ret;
+ }
}
}
Modified: trunk/freenet/src/freenet/support/io/TempBucketFactory.java
===================================================================
--- trunk/freenet/src/freenet/support/io/TempBucketFactory.java 2006-08-03
23:47:12 UTC (rev 9875)
+++ trunk/freenet/src/freenet/support/io/TempBucketFactory.java 2006-08-04
00:13:58 UTC (rev 9876)
@@ -68,17 +68,6 @@
logDebug = Logger.shouldLog(Logger.DEBUG,this);
File f = filenameGenerator.makeRandomFilename();
- //if (logDebug)
- Logger.minor(
- this,
- "Temp bucket created: "
- + f.getAbsolutePath()
- + " with hook "
- + hook
- + " initial length "
- + size,
- new Exception("creating TempBucket"));
-
return new TempFileBucket(f, hook, size, increment, factor);
}