Author: toad
Date: 2009-03-07 18:25:20 +0000 (Sat, 07 Mar 2009)
New Revision: 25944

Modified:
   
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
Log:
Single block insert leak fixes


Modified: 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java
===================================================================
--- 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2009-03-07 18:24:15 UTC (rev 25943)
+++ 
branches/db4o/freenet/src/freenet/client/async/MultiPutCompletionCallback.java  
    2009-03-07 18:25:20 UTC (rev 25944)
@@ -49,6 +49,8 @@
        public void onSuccess(ClientPutState state, ObjectContainer container, 
ClientContext context) {
                onBlockSetFinished(state, container, context);
                onFetchable(state, container);
+               if(persistent)
+                       container.activate(waitingFor, 2);
                boolean complete = true;
                synchronized(this) {
                        if(finished) {
@@ -72,6 +74,8 @@
                                }
                                complete = false;
                        }
+                       if(state == generator)
+                               generator = null;
                }
                if(persistent) state.removeFrom(container, context);
                if(complete) {
@@ -99,6 +103,8 @@
                                        container.store(this);
                                complete = false;
                        }
+                       if(state == generator)
+                               generator = null;
                }
                if(persistent) {
                        container.store(waitingFor);
@@ -235,6 +241,8 @@
        }
 
        public void onBlockSetFinished(ClientPutState state, ObjectContainer 
container, ClientContext context) {
+               if(persistent)
+                       container.activate(waitingForBlockSet, 2);
                synchronized(this) {
                        this.waitingForBlockSet.remove(state);
                        if(persistent)
@@ -260,6 +268,8 @@
        }
 
        public void onFetchable(ClientPutState state, ObjectContainer 
container) {
+               if(persistent)
+                       container.activate(waitingForFetchable, 2);
                synchronized(this) {
                        this.waitingForFetchable.remove(state);
                        if(persistent)

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

Reply via email to