Author: toad
Date: 2008-03-21 23:39:51 +0000 (Fri, 21 Mar 2008)
New Revision: 18714

Modified:
   trunk/freenet/src/freenet/client/async/OfferedKeysList.java
   trunk/freenet/src/freenet/node/RequestStarter.java
   trunk/freenet/src/freenet/node/SendableGet.java
Log:
Fix ClassCastException

Modified: trunk/freenet/src/freenet/client/async/OfferedKeysList.java
===================================================================
--- trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2008-03-21 
23:35:34 UTC (rev 18713)
+++ trunk/freenet/src/freenet/client/async/OfferedKeysList.java 2008-03-21 
23:39:51 UTC (rev 18714)
@@ -8,10 +8,10 @@

 import freenet.crypt.RandomSource;
 import freenet.keys.Key;
+import freenet.node.BaseSendableGet;
 import freenet.node.KeysFetchingLocally;
 import freenet.node.NodeClientCore;
 import freenet.node.RequestScheduler;
-import freenet.node.SendableRequest;
 import freenet.node.NodeClientCore.SimpleRequestSenderCompletionListener;
 import freenet.support.Logger;

@@ -29,7 +29,7 @@
  * @author toad
  *
  */
-public class OfferedKeysList extends SendableRequest {
+public class OfferedKeysList extends BaseSendableGet {

        private final HashSet keys;
        private final Vector keysList; // O(1) remove random element the way we 
use it, see chooseKey().
@@ -171,4 +171,8 @@
                assert(keysList.size() == keys.size());
        }

+       public Key getNodeKey(Object token) {
+               return (Key) token;
+       }
+
 }

Modified: trunk/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestStarter.java  2008-03-21 23:35:34 UTC 
(rev 18713)
+++ trunk/freenet/src/freenet/node/RequestStarter.java  2008-03-21 23:39:51 UTC 
(rev 18714)
@@ -189,7 +189,7 @@
                                keyNum = req.chooseKey(isInsert ? null : this);
                                if(keyNum == null) return false;
                                if(!isInsert) {
-                                       key = 
((SendableGet)req).getKey(keyNum).getNodeKey();
+                                       key = 
((BaseSendableGet)req).getNodeKey(keyNum);
                                        if(key == null) return false;
                                        synchronized(keysFetching) {
                                                keysFetching.add(key);

Modified: trunk/freenet/src/freenet/node/SendableGet.java
===================================================================
--- trunk/freenet/src/freenet/node/SendableGet.java     2008-03-21 23:35:34 UTC 
(rev 18713)
+++ trunk/freenet/src/freenet/node/SendableGet.java     2008-03-21 23:39:51 UTC 
(rev 18714)
@@ -15,7 +15,7 @@
 /**
  * A low-level key fetch which can be sent immediately. @see SendableRequest
  */
-public abstract class SendableGet extends SendableRequest {
+public abstract class SendableGet extends BaseSendableGet {

        /** Is this an SSK? */
        public abstract boolean isSSK();
@@ -26,6 +26,10 @@
        /** Get a numbered key to fetch. */
        public abstract ClientKey getKey(Object token);

+       public Key getNodeKey(Object token) {
+               return getKey(token).getNodeKey();
+       }
+       
        /** Get the fetch context (settings) object. */
        public abstract FetchContext getContext();



Reply via email to