Author: toad
Date: 2009-02-18 13:49:05 +0000 (Wed, 18 Feb 2009)
New Revision: 25683
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Object leak fixes in removeSubSegments: remove the vector, don't store it
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-18 13:41:29 UTC (rev 25682)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-02-18 13:49:05 UTC (rev 25683)
@@ -357,7 +357,7 @@
parentFetcher.removeMyPendingKeys(this, container,
context);
if(persistent)
container.deactivate(parentFetcher, 1);
- removeSubSegments(container, context);
+ removeSubSegments(container, context, false);
decode(container, context);
} else if(allFailed) {
fail(new FetchException(FetchException.SPLITFILE_ERROR,
errors), container, context, true);
@@ -1017,7 +1017,7 @@
checkKeys[i] = null;
}
}
- removeSubSegments(container, context);
+ removeSubSegments(container, context, false);
if(persistent) {
container.store(this);
container.activate(parentFetcher, 1);
@@ -1126,7 +1126,7 @@
return true;
}
- private void removeSubSegments(ObjectContainer container, ClientContext
context) {
+ private void removeSubSegments(ObjectContainer container, ClientContext
context, boolean finishing) {
if(persistent)
container.activate(subSegments, 1);
SplitFileFetcherSubSegment[] deadSegs;
@@ -1144,7 +1144,7 @@
if(persistent)
container.deactivate(deadSegs[i], 1);
}
- if(persistent) {
+ if(persistent && !finishing) {
container.store(this);
container.store(subSegments);
}
@@ -1548,7 +1548,8 @@
if(logMINOR) Logger.minor(this, "removing "+this);
if(decodedData != null)
freeDecodedData(container);
- removeSubSegments(container, context);
+ removeSubSegments(container, context, true);
+ container.delete(subSegments);
for(int i=0;i<dataKeys.length;i++) {
if(dataKeys[i] != null)
dataKeys[i].removeFrom(container);
dataKeys[i] = null;
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs