Author: toad
Date: 2009-04-01 00:33:24 +0000 (Wed, 01 Apr 2009)
New Revision: 26298
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Avoid some more deactivation side-effects in split file fetching
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-04-01 00:28:54 UTC (rev 26297)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2009-04-01 00:33:24 UTC (rev 26298)
@@ -827,8 +827,11 @@
} else
Logger.error(this, "Unrecognized block number:
"+blockNo, new Exception("error"));
// :(
- if(persistent)
- container.activate(parent, 1);
+ boolean deactivateParent = false; // can get called
from wierd places, don't deactivate parent if not necessary
+ if(persistent) {
+ deactivateParent =
!container.ext().isActive(parent);
+ if(deactivateParent) container.activate(parent,
1);
+ }
if(e.isFatal()) {
fatallyFailedBlocks++;
parent.fatallyFailedBlock(container, context);
@@ -836,7 +839,7 @@
failedBlocks++;
parent.failedBlock(container, context);
}
- if(persistent)
+ if(deactivateParent)
container.deactivate(parent, 1);
// Once it is no longer possible to have a successful
fetch, fail...
allFailed = failedBlocks + fatallyFailedBlocks >
(dataKeys.length + checkKeys.length - minFetched);
@@ -990,10 +993,13 @@
}
if(ret != null) return ret;
if(noCreate) return null;
- if(persistent)
- container.activate(parent, 1);
+ boolean deactivateParent = false;
+ if(persistent) {
+ deactivateParent =
!container.ext().isActive(parent);
+ if(deactivateParent) container.activate(parent,
1);
+ }
sub = new SplitFileFetcherSubSegment(this, parent,
retryCount);
- if(persistent)
+ if(deactivateParent)
container.deactivate(parent, 1);
subSegments.add(sub);
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs