Author: toad
Date: 2008-06-27 21:27:34 +0000 (Fri, 27 Jun 2008)
New Revision: 20831

Modified:
   branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
Log:
Activation: keep persistent in the callback so it knows whether to activate the 
parent.
Also pass USKFetcherProxyCallback the boolean it needs (doh)

Modified: branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java       
2008-06-27 21:25:54 UTC (rev 20830)
+++ branches/db4o/freenet/src/freenet/client/async/SingleFileFetcher.java       
2008-06-27 21:27:34 UTC (rev 20831)
@@ -639,11 +639,14 @@
                private final boolean wasFetchingFinalData;
                private final String element;
                private final ArchiveExtractCallback callback;
+               /** For activation we need to know whether we are persistent 
even though the parent may not have been activated yet */
+               private final boolean persistent;

                ArchiveFetcherCallback(boolean wasFetchingFinalData, String 
element, ArchiveExtractCallback cb) {
                        this.wasFetchingFinalData = wasFetchingFinalData;
                        this.element = element;
                        this.callback = cb;
+                       this.persistent = SingleFileFetcher.this.persistent;
                }

                public void onSuccess(FetchResult result, ClientGetState state, 
ObjectContainer container, ClientContext context) {
@@ -717,6 +720,12 @@

        class MultiLevelMetadataCallback implements GetCompletionCallback {

+               private final boolean persistent;
+               
+               MultiLevelMetadataCallback() {
+                       this.persistent = SingleFileFetcher.this.persistent;
+               }
+               
                public void onSuccess(FetchResult result, ClientGetState state, 
ObjectContainer container, ClientContext context) {
                        if(persistent)
                                container.activate(SingleFileFetcher.this, 1);
@@ -804,7 +813,7 @@
                                } else {
                                        // Transition to SingleFileFetcher
                                        GetCompletionCallback myCB =
-                                               new 
USKProxyCompletionCallback(usk, cb);
+                                               new 
USKProxyCompletionCallback(usk, cb, requester.persistent());
                                        // Want to update the latest known good 
iff the fetch succeeds.
                                        SingleFileFetcher sf = 
                                                new 
SingleFileFetcher(requester, myCB, clientMetadata, usk.getSSK(), metaStrings, 


Reply via email to