Author: toad
Date: 2008-07-29 12:47:34 +0000 (Tue, 29 Jul 2008)
New Revision: 21473
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
Log:
Paranoia w.r.t. fix.
Modified:
branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-07-29 12:44:59 UTC (rev 21472)
+++ branches/db4o/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2008-07-29 12:47:34 UTC (rev 21473)
@@ -660,13 +660,22 @@
SplitFileFetcherSubSegment sub;
if(persistent)
container.activate(subSegments, 1);
+ SplitFileFetcherSubSegment ret = null;
+ int dupes = 0;
synchronized(this) {
for(int i=0;i<subSegments.size();i++) {
sub = (SplitFileFetcherSubSegment)
subSegments.get(i);
if(persistent) container.activate(sub, 1);
- if(sub.retryCount == retryCount) return sub;
- if(persistent) container.deactivate(sub, 1);
+ if(sub.retryCount == retryCount) {
+ if(ret != null) {
+ Logger.error(this, "Duplicate
subsegment (count="+dupes+"): "+ret+" and "+sub+" for retry count
"+retryCount+" on "+this);
+ dupes++;
+ } else
+ ret = sub;
+ }
+ if(persistent && sub != ret)
container.deactivate(sub, 1);
}
+ if(ret != null) return ret;
if(noCreate) return null;
if(persistent)
container.activate(parent, 1);