Author: toad
Date: 2006-06-16 14:27:47 +0000 (Fri, 16 Jun 2006)
New Revision: 9229
Modified:
trunk/freenet/src/freenet/client/FetcherContext.java
trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
trunk/freenet/src/freenet/node/Version.java
Log:
819: Fix unreliable splitfile fetches.
Modified: trunk/freenet/src/freenet/client/FetcherContext.java
===================================================================
--- trunk/freenet/src/freenet/client/FetcherContext.java 2006-06-16
13:37:40 UTC (rev 9228)
+++ trunk/freenet/src/freenet/client/FetcherContext.java 2006-06-16
14:27:47 UTC (rev 9229)
@@ -116,8 +116,8 @@
this.dontEnterImplicitArchives = true;
this.random = ctx.random;
this.maxSplitfileThreads = 0;
- this.maxSplitfileBlockRetries = 0;
- this.maxNonSplitfileRetries =
ctx.maxNonSplitfileRetries;
+ this.maxSplitfileBlockRetries =
ctx.maxSplitfileBlockRetries;
+ this.maxNonSplitfileRetries =
ctx.maxSplitfileBlockRetries;
this.allowSplitfiles = false;
this.followRedirects = false;
this.localRequestOnly = ctx.localRequestOnly;
Modified: trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
2006-06-16 13:37:40 UTC (rev 9228)
+++ trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
2006-06-16 14:27:47 UTC (rev 9229)
@@ -54,6 +54,7 @@
/** Try again - returns true if we can retry */
protected boolean retry() {
retryCount++;
+ Logger.minor(this, "Attempting to retry... (max "+maxRetries+",
current "+retryCount+")");
// We want 0, 1, ... maxRetries i.e. maxRetries+1 attempts
(maxRetries=0 => try once)
if(retryCount <= maxRetries || maxRetries == -1) {
schedule();
Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-06-16 13:37:40 UTC (rev 9228)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2006-06-16 14:27:47 UTC (rev 9229)
@@ -469,6 +469,7 @@
// Real onFailure
protected void onFailure(FetchException e, boolean forceFatal) {
if(parent.isCancelled() || cancelled) {
+ Logger.minor(this, "Failing: cancelled");
e = new FetchException(FetchException.CANCELLED);
forceFatal = true;
}
Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2006-06-16 13:37:40 UTC (rev 9228)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
2006-06-16 14:27:47 UTC (rev 9229)
@@ -285,7 +285,7 @@
} else
Logger.error(this, "Unrecognized block number:
"+blockNo, new Exception("error"));
// :(
- Logger.minor(this, "Permanently failed: "+state+" on "+this);
+ Logger.minor(this, "Permanently failed block: "+state+" on
"+this);
if(e.isFatal())
fatallyFailedBlocks++;
else
@@ -326,7 +326,7 @@
if(dataBlocks[i].getKeyType().equals("USK"))
fail(new
FetchException(FetchException.INVALID_METADATA, "Cannot have USKs within a
splitfile!"));
dataBlockStatus[i] =
- (SingleFileFetcher)
SingleFileFetcher.create(parentFetcher.parent, this, null, dataBlocks[i],
blockFetchContext, archiveContext, blockFetchContext.maxSplitfileBlockRetries,
recursionLevel, true, new Integer(i), true, null);
+ (SingleFileFetcher)
SingleFileFetcher.create(parentFetcher.parent, this, null, dataBlocks[i],
blockFetchContext, archiveContext, blockFetchContext.maxNonSplitfileRetries,
recursionLevel, true, new Integer(i), true, null);
dataBlockStatus[i].schedule();
}
for(int i=0;i<checkBlocks.length;i++) {
@@ -334,7 +334,7 @@
if(checkBlocks[i].getKeyType().equals("USK"))
fail(new
FetchException(FetchException.INVALID_METADATA, "Cannot have USKs within a
splitfile!"));
checkBlockStatus[i] =
- (SingleFileFetcher)
SingleFileFetcher.create(parentFetcher.parent, this, null, checkBlocks[i],
blockFetchContext, archiveContext, blockFetchContext.maxSplitfileBlockRetries,
recursionLevel, true, new Integer(dataBlocks.length+i), false, null);
+ (SingleFileFetcher)
SingleFileFetcher.create(parentFetcher.parent, this, null, checkBlocks[i],
blockFetchContext, archiveContext, blockFetchContext.maxNonSplitfileRetries,
recursionLevel, true, new Integer(dataBlocks.length+i), false, null);
checkBlockStatus[i].schedule();
}
} catch (MalformedURLException e) {
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-16 13:37:40 UTC (rev
9228)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-16 14:27:47 UTC (rev
9229)
@@ -18,7 +18,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 818;
+ private static final int buildNumber = 819;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 765;