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


Reply via email to