Author: toad
Date: 2008-10-03 19:40:38 +0000 (Fri, 03 Oct 2008)
New Revision: 22934

Modified:
   
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
Log:
Missing store()s breaking directory inserts


Modified: 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2008-10-03 19:35:24 UTC (rev 22933)
+++ 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2008-10-03 19:40:38 UTC (rev 22934)
@@ -1,5 +1,6 @@
 package freenet.client.async;

+import java.util.Arrays;
 import java.util.Vector;

 import com.db4o.ObjectContainer;
@@ -51,9 +52,14 @@
                synchronized(this) {
                        if(finished) return;
                        waitingFor.remove(state);
-                       if(!(waitingFor.isEmpty() && started))
+                       if(!(waitingFor.isEmpty() && started)) {
+                               if(persistent) {
+                                       container.store(waitingFor);
+                               }
                                return;
+                       }
                }
+               Logger.minor(this, "Completing...");
                complete(null, container, context);
        }

@@ -64,7 +70,11 @@
                        waitingForBlockSet.remove(state);
                        waitingForFetchable.remove(state);
                        if(!(waitingFor.isEmpty() && started)) {
+                               container.store(waitingFor);
+                               container.store(waitingForBlockSet);
+                               container.store(waitingForFetchable);
                                this.e = e;
+                               container.store(this);
                                return;
                        }
                }


Reply via email to