Author: toad
Date: 2008-12-24 19:59:06 +0000 (Wed, 24 Dec 2008)
New Revision: 24790

Modified:
   branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
Log:
removeFrom().
Don't send an AllData on succeeding if the request is persistent.


Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-12-24 
19:57:44 UTC (rev 24789)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-12-24 
19:59:06 UTC (rev 24790)
@@ -300,6 +300,8 @@
                                client.register(this, lazyResume, container);
                        } catch (IdentifierCollisionException e) {
                                returnBucket.free();
+                               if(persistenceType == PERSIST_FOREVER)
+                                       returnBucket.removeFrom(container);
                                throw e;
                        }
                        if(persistenceType != PERSIST_CONNECTION && !noTags) {
@@ -364,6 +366,7 @@
                                if(finished) {
                                        Logger.error(this, "Already finished 
but onSuccess() for "+this+" data = "+data, new Exception("debug"));
                                        data.free();
+                                       if(persistenceType == PERSIST_FOREVER) 
data.removeFrom(container);
                                        return; // Already failed - bucket 
error maybe??
                                }
                                if(returnType == 
ClientGetMessage.RETURN_TYPE_DIRECT && returnBucket == null) {
@@ -423,8 +426,11 @@
 
                if(adm != null)
                        trySendAllDataMessage(adm, null, container);
-               if(!dontFree)
+               if(!dontFree) {
                        data.free();
+                       if(persistenceType == PERSIST_FOREVER)
+                               data.removeFrom(container);
+               }
                if(persistenceType == PERSIST_FOREVER) {
                        returnBucket.storeTo(container);
                        container.store(this);
@@ -471,16 +477,11 @@
                if(persistenceType != ClientRequest.PERSIST_CONNECTION) {
                        allDataPending = msg;
                        if(persistenceType == ClientRequest.PERSIST_FOREVER) {
-                               container.activate(client, 1);
                                container.store(this);
                        }
+                       return;
                }
-               if(persistenceType == PERSIST_CONNECTION && handler == null)
-                       handler = origHandler.outputHandler;
-               if(handler != null)
-                       handler.queue(msg);
-               else
-                       client.queueClientRequestMessage(msg, 0, container);
+               handler.queue(msg);
        }
 
        private void trySendProgress(SimpleProgressMessage msg, 
FCPConnectionOutputHandler handler, ObjectContainer container) {

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

Reply via email to