Author: toad
Date: 2009-02-19 00:51:47 +0000 (Thu, 19 Feb 2009)
New Revision: 25719

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientGetter.java
   branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
Log:
Don't cancel twice, was causing an object leak


Modified: branches/db4o/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientGetter.java    
2009-02-19 00:49:28 UTC (rev 25718)
+++ branches/db4o/freenet/src/freenet/client/async/ClientGetter.java    
2009-02-19 00:51:47 UTC (rev 25719)
@@ -234,7 +234,10 @@
                if(logMINOR) Logger.minor(this, "Cancelling "+this, new 
Exception("debug"));
                ClientGetState s;
                synchronized(this) {
-                       super.cancel();
+                       if(super.cancel()) {
+                               if(logMINOR) Logger.minor(this, "Already 
cancelled "+this);
+                               return;
+                       }
                        s = currentState;
                }
                if(persistent())

Modified: branches/db4o/freenet/src/freenet/client/async/ClientRequester.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequester.java 
2009-02-19 00:49:28 UTC (rev 25718)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequester.java 
2009-02-19 00:51:47 UTC (rev 25719)
@@ -38,8 +38,10 @@
                requests = persistent() ? new PersistentSendableRequestSet() : 
new TransientSendableRequestSet();
        }
 
-       synchronized void cancel() {
+       synchronized boolean cancel() {
+               boolean ret = !cancelled;
                cancelled = true;
+               return ret;
        }
        
        public abstract void cancel(ObjectContainer container, ClientContext 
context);

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

Reply via email to