Author: toad
Date: 2007-07-24 16:34:48 +0000 (Tue, 24 Jul 2007)
New Revision: 14303
Modified:
trunk/freenet/src/freenet/node/fcp/ClientGet.java
Log:
Better handling of wierd corner case
Modified: trunk/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-07-24 16:06:15 UTC
(rev 14302)
+++ trunk/freenet/src/freenet/node/fcp/ClientGet.java 2007-07-24 16:34:48 UTC
(rev 14303)
@@ -335,6 +335,13 @@
Logger.minor(this, "Succeeded: "+identifier);
Bucket data = result.asBucket();
if(returnBucket != data && !binaryBlob) {
+ synchronized(this) {
+ if(finished) {
+ Logger.error(this, "Already finished
but onSuccess() for "+this+" data = "+data, new Exception("debug"));
+ result.asBucket().free();
+ return; // Already failed - bucket
error maybe??
+ }
+ }
Logger.error(this, "returnBucket = "+returnBucket+" but
onSuccess() data = "+data);
// Caller guarantees that data == returnBucket
onFailure(new
FetchException(FetchException.INTERNAL_ERROR, "Data != returnBucket"), null);