Author: toad
Date: 2009-03-07 00:02:33 +0000 (Sat, 07 Mar 2009)
New Revision: 25921

Modified:
   
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
Log:
Bugfixes (removing stuff)


Modified: 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2009-03-07 00:01:31 UTC (rev 25920)
+++ 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2009-03-07 00:02:33 UTC (rev 25921)
@@ -56,9 +56,19 @@
                                return;
                        }
                        waitingFor.remove(state);
+                       if(waitingForBlockSet.contains(state)) {
+                               waitingForBlockSet.remove(state);
+                               if(persistent && !waitingFor.isEmpty())
+                                       
container.ext().store(waitingForBlockSet, 1);
+                       }
+                       if(waitingForFetchable.contains(state)) {
+                               waitingForFetchable.remove(state);
+                               if(persistent && !waitingFor.isEmpty())
+                                       
container.ext().store(waitingForFetchable, 1);
+                       }
                        if(!(waitingFor.isEmpty() && started)) {
                                if(persistent) {
-                                       container.store(waitingFor);
+                                       container.ext().store(waitingFor, 1);
                                }
                                complete = false;
                        }
@@ -110,7 +120,7 @@
                        }
                        if(e == null) {
                                e = this.e;
-                               if(persistent) {
+                               if(persistent && e != null) {
                                        container.activate(e, 10);
                                        e = e.clone(); // Since we will remove 
it, we can't pass it on
                                }
@@ -279,7 +289,10 @@
                // cb is at a higher level, we don't remove that, it removes 
itself
                // generator is just a reference to one of the waitingFor's
                // parent removes itself
-               e.removeFrom(container);
+               if(e != null) {
+                       container.activate(e, 5);
+                       e.removeFrom(container);
+               }
                // whoever set the token is responsible for removing it
                container.delete(this);
        }

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to