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

Reply via email to