From 9a2f7c2660b929e09f92ef5ed6a53aa583220151 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Thu, 30 Sep 2004 00:51:35 +0000
Subject: [PATCH] include the timeouts due to inability to find the leaseSet

---
 .../message/OutboundClientMessageJob.java     | 24 ++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageJob.java
index b63b5443d6..a09a7bc18d 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageJob.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageJob.java
@@ -228,6 +228,7 @@ public class OutboundClientMessageJob extends JobImpl {
             LeaseSet ls = getContext().netDb().lookupLeaseSetLocally(_ls.getDestination().calculateHash());
             if (ls == null) {
                 try {
+                    markTimeout();
                     getContext().netDb().store(_ls.getDestination().calculateHash(), _ls);
                 } catch (IllegalArgumentException iae) {
                     // ignore - it expired anyway
@@ -460,6 +461,21 @@ public class OutboundClientMessageJob extends JobImpl {
             _log.debug(getJobId() + ": Built payload clove with id " + clove.getId());
     }
     
+    /** 
+     * a send or netDb lookup timed out, so lets update some stats to help 
+     * determine why
+     *
+     */
+    private void markTimeout() {
+        long messageDelay = getContext().throttle().getMessageDelay();
+        long tunnelLag = getContext().throttle().getTunnelLag();
+        long inboundDelta = (long)getContext().throttle().getInboundRateDelta();
+            
+        getContext().statManager().addRateData("client.timeoutCongestionTunnel", tunnelLag, 1);
+        getContext().statManager().addRateData("client.timeoutCongestionMessage", messageDelay, 1);
+        getContext().statManager().addRateData("client.timeoutCongestionInbound", inboundDelta, 1);
+    }
+    
     /**
      * Keep an eye out for any of the delivery status message tokens that have been
      * sent down the various tunnels to deliver this message
@@ -503,6 +519,7 @@ public class OutboundClientMessageJob extends JobImpl {
         }
         public String getName() { return "Lookup for outbound client message failed"; }
         public void runJob() { 
+            markTimeout();
             sendNext();
         }
     }
@@ -598,12 +615,7 @@ public class OutboundClientMessageJob extends JobImpl {
                 _log.debug(OutboundClientMessageJob.this.getJobId()
                            + ": Soft timeout through the lease " + _lease);
             
-            long messageDelay = getContext().throttle().getMessageDelay();
-            long tunnelLag = getContext().throttle().getTunnelLag();
-            long inboundDelta = (long)getContext().throttle().getInboundRateDelta();
-            getContext().statManager().addRateData("client.timeoutCongestionTunnel", tunnelLag, 1);
-            getContext().statManager().addRateData("client.timeoutCongestionMessage", messageDelay, 1);
-            getContext().statManager().addRateData("client.timeoutCongestionInbound", inboundDelta, 1);
+            markTimeout();
             
             _lease.setNumFailure(_lease.getNumFailure()+1);
             sendNext();
-- 
GitLab