Author: toad
Date: 2007-02-16 16:56:27 +0000 (Fri, 16 Feb 2007)
New Revision: 11815

Modified:
   trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/ClientPutter.java
   trunk/freenet/src/freenet/client/async/ClientRequester.java
   trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java
   trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
   trunk/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
   trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
   trunk/freenet/src/freenet/client/async/USKChecker.java
   trunk/freenet/src/freenet/client/async/USKFetcher.java
   trunk/freenet/src/freenet/client/async/USKManager.java
   trunk/freenet/src/freenet/node/SendableGet.java
Log:
Refactoring.

Modified: trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java   
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/BaseSingleFileFetcher.java   
2007-02-16 16:56:27 UTC (rev 11815)
@@ -4,57 +4,32 @@
 package freenet.client.async;

 import freenet.client.FetcherContext;
-import freenet.keys.ClientCHK;
 import freenet.keys.ClientKey;
-import freenet.keys.ClientKeyBlock;
-import freenet.keys.ClientSSK;
-import freenet.node.LowLevelGetException;
-import freenet.node.NodeClientCore;
 import freenet.node.SendableGet;
 import freenet.support.Logger;

-public abstract class BaseSingleFileFetcher implements SendableGet {
+public abstract class BaseSingleFileFetcher extends SendableGet {

        final ClientKey key;
        protected boolean cancelled;
        final int maxRetries;
        private int retryCount;
        final FetcherContext ctx;
-       final BaseClientGetter parent;

-       BaseSingleFileFetcher(ClientKey key, int maxRetries, FetcherContext 
ctx, BaseClientGetter parent) {
+       BaseSingleFileFetcher(ClientKey key, int maxRetries, FetcherContext 
ctx, ClientRequester parent) {
+               super(parent);
                retryCount = 0;
                this.maxRetries = maxRetries;
                this.key = key;
                this.ctx = ctx;
-               this.parent = parent;
        }

        public ClientKey getKey() {
                return key;
        }
-
-       /** Do the request, blocking. Called by RequestStarter. */
-       public void send(NodeClientCore core) {
-               synchronized (this) {
-                       if(cancelled) {
-                               onFailure(new 
LowLevelGetException(LowLevelGetException.CANCELLED));
-                               return;
-                       }       
-               }
-               // Do we need to support the last 3?
-               ClientKeyBlock block;
-               try {
-                       block = core.realGetKey(key, ctx.localRequestOnly, 
ctx.cacheLocalRequests, ctx.ignoreStore);
-               } catch (LowLevelGetException e) {
-                       onFailure(e);
-                       return;
-               } catch (Throwable t) {
-                       Logger.error(this, "Caught "+t, t);
-                       onFailure(new 
LowLevelGetException(LowLevelGetException.INTERNAL_ERROR));
-                       return;
-               }
-               onSuccess(block, false);
+       
+       public FetcherContext getContext() {
+               return ctx;
        }

        /** Try again - returns true if we can retry */
@@ -70,17 +45,6 @@
                return false;
        }

-       public void schedule() {
-               if(Logger.shouldLog(Logger.MINOR, this))
-                       Logger.minor(this, "Scheduling "+this+" for "+key);
-               if(key instanceof ClientCHK)
-                       parent.chkScheduler.register(this);
-               else if(key instanceof ClientSSK)
-                       parent.sskScheduler.register(this);
-               else
-                       throw new IllegalStateException(String.valueOf(key));
-       }
-
        public int getRetryCount() {
                return retryCount;
        }

Modified: trunk/freenet/src/freenet/client/async/ClientPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientPutter.java    2007-02-16 
15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/ClientPutter.java    2007-02-16 
16:56:27 UTC (rev 11815)
@@ -232,4 +232,8 @@
                return start(earlyEncode, true);
        }

+       public void onTransition(ClientGetState oldState, ClientGetState 
newState) {
+               // Ignore, at the moment
+       }
+
 }

Modified: trunk/freenet/src/freenet/client/async/ClientRequester.java
===================================================================
--- trunk/freenet/src/freenet/client/async/ClientRequester.java 2007-02-16 
15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/ClientRequester.java 2007-02-16 
16:56:27 UTC (rev 11815)
@@ -13,11 +13,13 @@
  */
 public abstract class ClientRequester {

+       public abstract void onTransition(ClientGetState oldState, 
ClientGetState newState);
+       
        // FIXME move the priority classes from RequestStarter here
        protected short priorityClass;
        protected boolean cancelled;
-       final ClientRequestScheduler chkScheduler;
-       final ClientRequestScheduler sskScheduler;
+       public final ClientRequestScheduler chkScheduler;
+       public final ClientRequestScheduler sskScheduler;
        protected final Object client;

        public short getPriorityClass() {

Modified: trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java      
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/SimpleHealingQueue.java      
2007-02-16 16:56:27 UTC (rev 11815)
@@ -120,4 +120,8 @@
                // Ignore
        }

+       public void onTransition(ClientGetState oldState, ClientGetState 
newState) {
+               // Ignore
+       }
+
 }

Modified: trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/SimpleManifestPutter.java    
2007-02-16 16:56:27 UTC (rev 11815)
@@ -173,6 +173,10 @@
                        SimpleManifestPutter.this.onFetchable(this);
                }

+               public void onTransition(ClientGetState oldState, 
ClientGetState newState) {
+                       // Ignore
+               }
+
        }

        static boolean logMINOR;
@@ -721,4 +725,8 @@
                cb.onFetchable(this);
        }

+       public void onTransition(ClientGetState oldState, ClientGetState 
newState) {
+               // Ignore
+       }
+
 }

Modified: trunk/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java 
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/SimpleSingleFileFetcher.java 
2007-02-16 16:56:27 UTC (rev 11815)
@@ -22,7 +22,7 @@
  */
 public class SimpleSingleFileFetcher extends BaseSingleFileFetcher implements 
ClientGetState {

-       SimpleSingleFileFetcher(ClientKey key, int maxRetries, FetcherContext 
ctx, BaseClientGetter parent, GetCompletionCallback rcb, boolean isEssential, 
long l) {
+       SimpleSingleFileFetcher(ClientKey key, int maxRetries, FetcherContext 
ctx, ClientRequester parent, GetCompletionCallback rcb, boolean isEssential, 
long l) {
                super(key, maxRetries, ctx, parent);
                this.rcb = rcb;
                this.token = l;

Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java       
2007-02-16 16:56:27 UTC (rev 11815)
@@ -59,12 +59,12 @@
         * Called when following a redirect, or direct from ClientGet.
         * FIXME: Many times where this is called internally we might be better 
off using a copy constructor? 
         */
-       public SingleFileFetcher(BaseClientGetter get, GetCompletionCallback 
cb, ClientMetadata metadata,
+       public SingleFileFetcher(ClientRequester parent, GetCompletionCallback 
cb, ClientMetadata metadata,
                        ClientKey key, LinkedList metaStrings, FreenetURI 
origURI, int addedMetaStrings, FetcherContext ctx,
                        ArchiveContext actx, int maxRetries, int recursionLevel,
                        boolean dontTellClientGet, long l, boolean isEssential,
                        Bucket returnBucket, boolean isFinal) throws 
FetchException {
-               super(key, maxRetries, ctx, get, cb, isEssential, l);
+               super(key, maxRetries, ctx, parent, cb, isEssential, l);
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                if(logMINOR) Logger.minor(this, "Creating SingleFileFetcher for 
"+key+" from "+origURI+" meta="+metaStrings.toString(), new Exception("debug"));
                this.isFinal = isFinal;
@@ -529,7 +529,7 @@
        /**
         * Create a fetcher for a key.
         */
-       public static ClientGetState create(BaseClientGetter parent, 
GetCompletionCallback cb, 
+       public static ClientGetState create(ClientRequester requester, 
GetCompletionCallback cb, 
                        ClientMetadata clientMetadata, FreenetURI uri, 
FetcherContext ctx, ArchiveContext actx, 
                        int maxRetries, int recursionLevel, boolean 
dontTellClientGet, long l, boolean isEssential, 
                        Bucket returnBucket, boolean isFinal) throws 
MalformedURLException, FetchException {
@@ -537,20 +537,20 @@
                if((clientMetadata == null || clientMetadata.isTrivial()) && 
(!uri.hasMetaStrings()) &&
                                ctx.allowSplitfiles == false && 
ctx.followRedirects == false && 
                                returnBucket == null && key instanceof 
ClientKey)
-                       return new SimpleSingleFileFetcher((ClientKey)key, 
maxRetries, ctx, parent, cb, isEssential, l);
+                       return new SimpleSingleFileFetcher((ClientKey)key, 
maxRetries, ctx, requester, cb, isEssential, l);
                else
                        if(logMINOR) 
                                Logger.minor(SingleFileFetcher.class, "Not 
creating SimpleSingleFileFetcher: cm="+clientMetadata+
                                        " uri="+uri+" 
("+uri.getAllMetaStrings()+") ctx.allowSplitfiles="+ctx.allowSplitfiles+
                                                
"ctx.followRedirects="+ctx.followRedirects+" returnBucket="+returnBucket+" 
key="+key, new Exception());
                if(key instanceof ClientKey)
-                       return new SingleFileFetcher(parent, cb, 
clientMetadata, (ClientKey)key, uri.listMetaStrings(), uri, 0, ctx, actx, 
maxRetries, recursionLevel, dontTellClientGet, l, isEssential, returnBucket, 
isFinal);
+                       return new SingleFileFetcher(requester, cb, 
clientMetadata, (ClientKey)key, uri.listMetaStrings(), uri, 0, ctx, actx, 
maxRetries, recursionLevel, dontTellClientGet, l, isEssential, returnBucket, 
isFinal);
                else {
-                       return uskCreate(parent, cb, clientMetadata, (USK)key, 
uri.listMetaStrings(), ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, l, isEssential, returnBucket, isFinal);
+                       return uskCreate(requester, cb, clientMetadata, 
(USK)key, uri.listMetaStrings(), ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, l, 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, long l, boolean isEssential, Bucket 
returnBucket, boolean isFinal) throws FetchException {
+       private static ClientGetState uskCreate(ClientRequester requester, 
GetCompletionCallback cb, ClientMetadata clientMetadata, USK usk, LinkedList 
metaStrings, FetcherContext ctx, ArchiveContext actx, int maxRetries, int 
recursionLevel, boolean dontTellClientGet, long l, 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);
@@ -568,7 +568,7 @@
                                                new 
USKProxyCompletionCallback(usk, ctx.uskManager, cb);
                                        // Want to update the latest known good 
iff the fetch succeeds.
                                        SingleFileFetcher sf = 
-                                               new SingleFileFetcher(parent, 
myCB, clientMetadata, usk.getSSK(), metaStrings, 
+                                               new 
SingleFileFetcher(requester, myCB, clientMetadata, usk.getSSK(), metaStrings, 
                                                                
usk.getURI().addMetaStrings(metaStrings), 0, ctx, actx, maxRetries, 
recursionLevel, 
                                                                
dontTellClientGet, l, false, returnBucket, isFinal);
                                        return sf;
@@ -580,17 +580,17 @@
                } else {
                        // Do a thorough, blocking search
                        USKFetcher fetcher =
-                               
ctx.uskManager.getFetcher(usk.copy(-usk.suggestedEdition), ctx, parent, false);
+                               
ctx.uskManager.getFetcher(usk.copy(-usk.suggestedEdition), ctx, requester, 
false);
                        if(isEssential)
-                               parent.addMustSucceedBlocks(1);
-                       fetcher.addCallback(new MyUSKFetcherCallback(parent, 
cb, clientMetadata, usk, metaStrings, ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, l, returnBucket));
+                               requester.addMustSucceedBlocks(1);
+                       fetcher.addCallback(new MyUSKFetcherCallback(requester, 
cb, clientMetadata, usk, metaStrings, ctx, actx, maxRetries, recursionLevel, 
dontTellClientGet, l, returnBucket));
                        return fetcher;
                }
        }

        public static class MyUSKFetcherCallback implements USKFetcherCallback {

-               final BaseClientGetter parent;
+               final ClientRequester parent;
                final GetCompletionCallback cb;
                final ClientMetadata clientMetadata;
                final USK usk;
@@ -603,8 +603,8 @@
                final long token;
                final Bucket returnBucket;

-               public MyUSKFetcherCallback(BaseClientGetter parent, 
GetCompletionCallback cb, ClientMetadata clientMetadata, USK usk, LinkedList 
metaStrings, FetcherContext ctx, ArchiveContext actx, int maxRetries, int 
recursionLevel, boolean dontTellClientGet, long l, Bucket returnBucket) {
-                       this.parent = parent;
+               public MyUSKFetcherCallback(ClientRequester requester, 
GetCompletionCallback cb, ClientMetadata clientMetadata, USK usk, LinkedList 
metaStrings, FetcherContext ctx, ArchiveContext actx, int maxRetries, int 
recursionLevel, boolean dontTellClientGet, long l, Bucket returnBucket) {
+                       this.parent = requester;
                        this.cb = cb;
                        this.clientMetadata = clientMetadata;
                        this.usk = usk;

Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcher.java        
2007-02-16 15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcher.java        
2007-02-16 16:56:27 UTC (rev 11815)
@@ -32,7 +32,7 @@
        final ArchiveContext archiveContext;
        final LinkedList decompressors;
        final ClientMetadata clientMetadata;
-       final BaseClientGetter parent;
+       final ClientRequester parent;
        final GetCompletionCallback cb;
        final int recursionLevel;
        /** The splitfile type. See the SPLITFILE_ constants on Metadata. */
@@ -62,7 +62,7 @@
        private boolean finished;
        private long token;

-       public SplitFileFetcher(Metadata metadata, GetCompletionCallback rcb, 
BaseClientGetter parent,
+       public SplitFileFetcher(Metadata metadata, GetCompletionCallback rcb, 
ClientRequester parent2,
                        FetcherContext newCtx, LinkedList decompressors, 
ClientMetadata clientMetadata, 
                        ArchiveContext actx, int recursionLevel, Bucket 
returnBucket, long token2) throws FetchException, MetadataParseException {
                this.finished = false;
@@ -73,8 +73,8 @@
                this.clientMetadata = clientMetadata;
                this.cb = rcb;
                this.recursionLevel = recursionLevel + 1;
-               this.parent = parent;
-               if(parent.isCancelled())
+               this.parent = parent2;
+               if(parent2.isCancelled())
                        throw new FetchException(FetchException.CANCELLED);
                overrideLength = metadata.dataLength();
                this.splitfileType = metadata.getSplitfileType();

Modified: trunk/freenet/src/freenet/client/async/USKChecker.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKChecker.java      2007-02-16 
15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/USKChecker.java      2007-02-16 
16:56:27 UTC (rev 11815)
@@ -18,7 +18,7 @@
        final USKCheckerCallback cb;
        private int dnfs;

-       USKChecker(USKCheckerCallback cb, ClientKey key, int maxRetries, 
FetcherContext ctx, BaseClientGetter parent) {
+       USKChecker(USKCheckerCallback cb, ClientKey key, int maxRetries, 
FetcherContext ctx, ClientRequester parent) {
                super(key, maxRetries, ctx, parent);
         if(Logger.shouldLog(Logger.MINOR, this))
                Logger.minor(this, "Created USKChecker for "+key);

Modified: trunk/freenet/src/freenet/client/async/USKFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKFetcher.java      2007-02-16 
15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/USKFetcher.java      2007-02-16 
16:56:27 UTC (rev 11815)
@@ -85,7 +85,7 @@
        /** Kill a background poll fetcher when it has lost its last 
subscriber? */
        private boolean killOnLoseSubscribers;

-       final BaseClientGetter parent;
+       final ClientRequester parent;

        // We keep the data from the last (highest number) request.
        private Bucket lastRequestData;
@@ -200,13 +200,13 @@

        private int token;

-       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
BaseClientGetter parent, int minFailures, boolean pollForever, boolean 
keepLastData, int token) {
-               this(origUSK, manager, ctx, parent, minFailures, pollForever, 
DEFAULT_MAX_MIN_FAILURES, keepLastData, token);
+       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
ClientRequester requester, int minFailures, boolean pollForever, boolean 
keepLastData, int token) {
+               this(origUSK, manager, ctx, requester, minFailures, 
pollForever, DEFAULT_MAX_MIN_FAILURES, keepLastData, token);
        }

        // FIXME use this!
-       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
BaseClientGetter parent, int minFailures, boolean pollForever, long 
maxProbeEditions, boolean keepLastData, int token) {
-               this.parent = parent;
+       USKFetcher(USK origUSK, USKManager manager, FetcherContext ctx, 
ClientRequester requester, int minFailures, boolean pollForever, long 
maxProbeEditions, boolean keepLastData, int token) {
+               this.parent = requester;
                this.maxMinFailures = maxProbeEditions;
                this.origUSK = origUSK;
                this.uskManager = manager;

Modified: trunk/freenet/src/freenet/client/async/USKManager.java
===================================================================
--- trunk/freenet/src/freenet/client/async/USKManager.java      2007-02-16 
15:17:55 UTC (rev 11814)
+++ trunk/freenet/src/freenet/client/async/USKManager.java      2007-02-16 
16:56:27 UTC (rev 11815)
@@ -80,16 +80,16 @@
        }

        public synchronized USKFetcher getFetcher(USK usk, FetcherContext ctx,
-                       BaseClientGetter parent, boolean keepLastData) {
+                       ClientRequester requester, boolean keepLastData) {
                USKFetcher f = (USKFetcher) fetchersByUSK.get(usk);
                USK clear = usk.clearCopy();
                if(temporaryBackgroundFetchersLRU.contains(clear))
                        temporaryBackgroundFetchersLRU.push(clear);
                if(f != null) {
-                       if((f.parent.priorityClass == parent.priorityClass) && 
f.ctx.equals(ctx) && f.keepLastData == keepLastData)
+                       if((f.parent.priorityClass == requester.priorityClass) 
&& f.ctx.equals(ctx) && f.keepLastData == keepLastData)
                                return f;
                }
-               f = new USKFetcher(usk, this, ctx, parent, 3, false, 
keepLastData, -1);
+               f = new USKFetcher(usk, this, ctx, requester, 3, false, 
keepLastData, -1);
                fetchersByUSK.put(usk, f);
                return f;
        }

Modified: trunk/freenet/src/freenet/node/SendableGet.java
===================================================================
--- trunk/freenet/src/freenet/node/SendableGet.java     2007-02-16 15:17:55 UTC 
(rev 11814)
+++ trunk/freenet/src/freenet/node/SendableGet.java     2007-02-16 16:56:27 UTC 
(rev 11815)
@@ -3,25 +3,81 @@
  * http://www.gnu.org/ for further details of the GPL. */
 package freenet.node;

+import freenet.client.FetcherContext;
+import freenet.client.async.BaseClientGetter;
+import freenet.client.async.ClientRequester;
+import freenet.keys.ClientCHK;
 import freenet.keys.ClientKey;
 import freenet.keys.ClientKeyBlock;
+import freenet.keys.ClientSSK;
+import freenet.support.Logger;

 /**
  * A low-level key fetch which can be sent immediately. @see SendableRequest
  */
-public interface SendableGet extends SendableRequest {
+public abstract class SendableGet implements SendableRequest {

-       public ClientKey getKey();
+       /** Parent BaseClientGetter. Required for schedulers. */
+       public final ClientRequester parent;

+       /** Get the key to fetch (this time!). */
+       public abstract ClientKey getKey();
+       
+       /** Get the fetch context (settings) object. */
+       public abstract FetcherContext getContext();
+       
        /** Called when/if the low-level request succeeds. */
-       public void onSuccess(ClientKeyBlock block, boolean fromStore);
+       public abstract void onSuccess(ClientKeyBlock block, boolean fromStore);

        /** Called when/if the low-level request fails. */
-       public void onFailure(LowLevelGetException e);
+       public abstract void onFailure(LowLevelGetException e);

        /** Should the request ignore the datastore? */
-       public boolean ignoreStore();
+       public abstract boolean ignoreStore();

        /** If true, don't cache local requests */
-       public boolean dontCache();
+       public abstract boolean dontCache();
+
+       // Implementation
+
+       public SendableGet(ClientRequester parent) {
+               this.parent = parent;
+       }
+       
+       /** Do the request, blocking. Called by RequestStarter. */
+       public void send(NodeClientCore core) {
+               synchronized (this) {
+                       if(isFinished()) {
+                               onFailure(new 
LowLevelGetException(LowLevelGetException.CANCELLED));
+                               return;
+                       }       
+               }
+               // Do we need to support the last 3?
+               ClientKeyBlock block;
+               try {
+                       FetcherContext ctx = getContext();
+                       block = core.realGetKey(getKey(), ctx.localRequestOnly, 
ctx.cacheLocalRequests, ctx.ignoreStore);
+               } catch (LowLevelGetException e) {
+                       onFailure(e);
+                       return;
+               } catch (Throwable t) {
+                       Logger.error(this, "Caught "+t, t);
+                       onFailure(new 
LowLevelGetException(LowLevelGetException.INTERNAL_ERROR));
+                       return;
+               }
+               onSuccess(block, false);
+       }
+
+       public void schedule() {
+               ClientKey key = getKey();
+               if(Logger.shouldLog(Logger.MINOR, this))
+                       Logger.minor(this, "Scheduling "+this+" for "+key);
+               if(key instanceof ClientCHK)
+                       parent.chkScheduler.register(this);
+               else if(key instanceof ClientSSK)
+                       parent.sskScheduler.register(this);
+               else
+                       throw new IllegalStateException(String.valueOf(key));
+       }
+
 }


Reply via email to