Author: toad
Date: 2006-11-10 17:27:12 +0000 (Fri, 10 Nov 2006)
New Revision: 10856

Modified:
   trunk/freenet/src/freenet/client/async/ClientGetter.java
   trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
   trunk/freenet/src/freenet/client/async/USKRetriever.java
Log:
Never reset isFinal to true. (Fixes some possible problems in last commit).

Modified: trunk/freenet/src/freenet/client/async/ClientGetter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientGetter.java    2006-11-10 
15:50:03 UTC (rev 10855)
+++ trunk/freenet/src/freenet/client/async/ClientGetter.java    2006-11-10 
17:27:12 UTC (rev 10856)
@@ -73,7 +73,7 @@
                                }
                                currentState = SingleFileFetcher.create(this, 
this, new ClientMetadata(),
                                                uri, ctx, actx, 
ctx.maxNonSplitfileRetries, 0, false, null, true,
-                                               returnBucket);
+                                               returnBucket, true);
                        }
                        if(cancelled) cancel();
                        if(currentState != null)

Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2006-11-10 15:50:03 UTC (rev 10855)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2006-11-10 17:27:12 UTC (rev 10856)
@@ -350,7 +350,7 @@
                                }

                                // **FIXME** Is key in the call to 
SingleFileFetcher here supposed to be this.key or the same key used in the try 
block above?  MultiLevelMetadataCallback.onSuccess() below uses this.key, thus 
the question
-                               SingleFileFetcher f = new 
SingleFileFetcher(parent, rcb, clientMetadata, key, metaStrings, this.uri, 
addedMetaStrings, ctx, actx, maxRetries, recursionLevel, false, token, true, 
returnBucket, true);
+                               SingleFileFetcher f = new 
SingleFileFetcher(parent, rcb, clientMetadata, key, metaStrings, this.uri, 
addedMetaStrings, ctx, actx, maxRetries, recursionLevel, false, token, true, 
returnBucket, isFinal);
                                if((key instanceof ClientCHK) && 
!((ClientCHK)key).isMetadata())
                                        rcb.onBlockSetFinished(this);
                                if(metadata.isCompressed()) {
@@ -603,16 +603,16 @@
                return ctx.ignoreStore;
        }

-       public static ClientGetState create(BaseClientGetter parent, 
GetCompletionCallback cb, ClientMetadata clientMetadata, FreenetURI uri, 
FetcherContext ctx, ArchiveContext actx, int maxRetries, int recursionLevel, 
boolean dontTellClientGet, Object token, boolean isEssential, Bucket 
returnBucket) throws MalformedURLException, FetchException {
+       public static ClientGetState create(BaseClientGetter parent, 
GetCompletionCallback cb, ClientMetadata clientMetadata, FreenetURI uri, 
FetcherContext ctx, ArchiveContext actx, int maxRetries, int recursionLevel, 
boolean dontTellClientGet, Object token, boolean isEssential, Bucket 
returnBucket, boolean isFinal) throws MalformedURLException, FetchException {
                BaseClientKey key = BaseClientKey.getBaseKey(uri);
                if(key instanceof ClientKey)
-                       return new SingleFileFetcher(parent, cb, 
clientMetadata, (ClientKey)key, uri.listMetaStrings(), uri, 0, ctx, actx, 
maxRetries, recursionLevel, dontTellClientGet, token, isEssential, 
returnBucket, true);
+                       return new SingleFileFetcher(parent, cb, 
clientMetadata, (ClientKey)key, uri.listMetaStrings(), uri, 0, ctx, actx, 
maxRetries, recursionLevel, dontTellClientGet, token, isEssential, 
returnBucket, isFinal);
                else {
-                       return uskCreate(parent, cb, clientMetadata, (USK)key, 
uri.listMetaStrings(), ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, token, isEssential, returnBucket);
+                       return uskCreate(parent, cb, clientMetadata, (USK)key, 
uri.listMetaStrings(), ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, token, isEssential, returnBucket, isFinal);
                }
        }

-       private static ClientGetState uskCreate(BaseClientGetter parent, 
GetCompletionCallback cb, ClientMetadata clientMetadata, USK usk, LinkedList 
metaStrings, FetcherContext ctx, ArchiveContext actx, int maxRetries, int 
recursionLevel, boolean dontTellClientGet, Object token, boolean isEssential, 
Bucket returnBucket) throws FetchException {
+       private static ClientGetState uskCreate(BaseClientGetter parent, 
GetCompletionCallback cb, ClientMetadata clientMetadata, USK usk, LinkedList 
metaStrings, FetcherContext ctx, ArchiveContext actx, int maxRetries, int 
recursionLevel, boolean dontTellClientGet, Object token, boolean isEssential, 
Bucket returnBucket, boolean isFinal) throws FetchException {
                if(usk.suggestedEdition >= 0) {
                        // Return the latest known version but at least 
suggestedEdition.
                        long edition = ctx.uskManager.lookup(usk);
@@ -624,7 +624,7 @@
                                SingleFileFetcher sf = 
                                        new SingleFileFetcher(parent, myCB, 
clientMetadata, usk.getSSK(usk.suggestedEdition),
                                                        metaStrings, 
usk.getURI().addMetaStrings(metaStrings), 0, ctx, actx, maxRetries, 
recursionLevel, dontTellClientGet,
-                                                       token, false, 
returnBucket, true);
+                                                       token, false, 
returnBucket, isFinal);
                                // Background fetch
                                
ctx.uskManager.startTemporaryBackgroundFetcher(usk);
                                return sf;

Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2006-11-10 15:50:03 UTC (rev 10855)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcherSegment.java 
2006-11-10 17:27:12 UTC (rev 10856)
@@ -376,7 +376,7 @@
                                if(dataBlockStatus[i] != null) {
                                        Logger.error(this, "Scheduling twice? 
dataBlockStatus["+i+"] = "+dataBlockStatus[i]);
                                } else dataBlockStatus[i] =
-                                       (SingleFileFetcher) 
SingleFileFetcher.create(parentFetcher.parent, this, null, dataBlocks[i], 
blockFetchContext, archiveContext, blockFetchContext.maxNonSplitfileRetries, 
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, false);
                        }
                        for(int i=0;i<checkBlocks.length;i++) {
                                if(checkBlocks[i] == null) {
@@ -389,7 +389,7 @@
                                if(checkBlockStatus[i] != null) {
                                        Logger.error(this, "Scheduling twice? 
dataBlockStatus["+i+"] = "+checkBlockStatus[i]);
                                } else checkBlockStatus[i] =
-                                       (SingleFileFetcher) 
SingleFileFetcher.create(parentFetcher.parent, this, null, checkBlocks[i], 
blockFetchContext, archiveContext, blockFetchContext.maxNonSplitfileRetries, 
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, false);
                        }
                        synchronized(this) {
                                createdFetchers = true;

Modified: trunk/freenet/src/freenet/client/async/USKRetriever.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKRetriever.java    2006-11-10 
15:50:03 UTC (rev 10855)
+++ trunk/freenet/src/freenet/client/async/USKRetriever.java    2006-11-10 
17:27:12 UTC (rev 10856)
@@ -38,7 +38,7 @@
                try {
                        SingleFileFetcher getter =
                                (SingleFileFetcher) 
SingleFileFetcher.create(this, this, new ClientMetadata(), uri, ctx, new 
ArchiveContext(ctx.maxArchiveLevels), 
-                                               ctx.maxNonSplitfileRetries, 0, 
true, key.copy(l), true, null);
+                                               ctx.maxNonSplitfileRetries, 0, 
true, key.copy(l), true, null, false);
                        getter.schedule();
                } catch (MalformedURLException e) {
                        Logger.error(this, "Impossible: "+e, e);


Reply via email to