Author: toad
Date: 2009-02-19 00:49:28 +0000 (Thu, 19 Feb 2009)
New Revision: 25718
Modified:
branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
Log:
Another leak
Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
2009-02-19 00:46:28 UTC (rev 25717)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
2009-02-19 00:49:28 UTC (rev 25718)
@@ -1118,24 +1118,36 @@
SingleFileFetcher sf = new
SingleFileFetcher(parent, cb, null, persistent ? key : key.cloneKey(),
metaStrings, key.getURI().addMetaStrings(metaStrings),
0, ctx, false, actx,
null, null, maxRetries, recursionLevel+1, dontTellClientGet, token, false,
returnBucket, true, container, context);
sf.schedule(container, context);
+ if(persistent) removeFrom(container);
} else {
cb.onFailure(new
FetchException(FetchException.PERMANENT_REDIRECT,
newUSK.getURI().addMetaStrings(metaStrings)), null, container, context);
+ if(persistent) removeFrom(container);
}
} catch (FetchException e) {
cb.onFailure(e, null, container, context);
+ if(persistent) removeFrom(container);
}
}
+
+ private void removeFrom(ObjectContainer container) {
+ container.delete(metaStrings);
+ container.delete(this);
+ container.activate(usk, 5);
+ usk.removeFrom(container);
+ }
public void onFailure(ObjectContainer container, ClientContext
context) {
if(persistent)
container.activate(this, 2);
cb.onFailure(new
FetchException(FetchException.DATA_NOT_FOUND, "No USK found"), null, container,
context);
+ if(persistent) removeFrom(container);
}
public void onCancelled(ObjectContainer container,
ClientContext context) {
if(persistent)
container.activate(this, 2);
cb.onFailure(new
FetchException(FetchException.CANCELLED, (String)null), null, container,
context);
+ if(persistent) removeFrom(container);
}
public short getPollingPriorityNormal() {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs