Author: toad
Date: 2008-02-02 16:25:41 +0000 (Sat, 02 Feb 2008)
New Revision: 17473
Modified:
trunk/freenet/src/freenet/node/RequestHandler.java
Log:
If a request takes so long that the predecessor times out, but we do eventually
get the data, we need to offer it to the predecessor through ULPRs.
Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java 2008-02-02 16:06:24 UTC
(rev 17472)
+++ trunk/freenet/src/freenet/node/RequestHandler.java 2008-02-02 16:25:41 UTC
(rev 17473)
@@ -228,6 +228,8 @@
this.status=status;
if (now > responseDeadline) {
+ // Offer the data if there is any.
+ node.failureTable.onFailure(key, htl, new PeerNode[] { source
}, null, -1, System.currentTimeMillis());
Logger.error(this, "requestsender took too long to
respond to requestor ("+TimeUtil.formatTime((now - searchStartTime), 2,
true)+"/"+rs.getStatusString()+")");
applyByteCounts();
unregisterRequestHandlerWithNode();