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