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();