Author: toad
Date: 2009-04-01 14:24:43 +0000 (Wed, 01 Apr 2009)
New Revision: 26310
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
Log:
We want the first call to onFailure() to call fail(). But don't freeData until
after the cancel's.
Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2009-04-01 14:18:33 UTC (rev 26309)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileInserter.java
2009-04-01 14:24:43 UTC (rev 26310)
@@ -657,14 +657,12 @@
toRemove = true;
sfi = null;
if(metadataPutter != null) {
- toFail = false;
if(persistent)
container.store(this);
}
} else if(state == metadataPutter) {
toRemove = true;
metadataPutter = null;
if(sfi != null) {
- toFail = false;
if(persistent)
container.store(this);
}
} else {
@@ -785,11 +783,6 @@
synchronized(this) {
if(finished){
return;
- } else {
- if(freeData)
- block.free(container);
- else
- block.nullData();
}
finished = true;
oldSFI = sfi;
@@ -807,6 +800,12 @@
oldSFI.cancel(container, context);
if(oldMetadataPutter != null)
oldMetadataPutter.cancel(container, context);
+ synchronized(this) {
+ if(freeData)
+ block.free(container);
+ else
+ block.nullData();
+ }
cb.onFailure(e, this, container, context);
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs