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;


Reply via email to