Author: toad
Date: 2006-09-06 15:30:16 +0000 (Wed, 06 Sep 2006)
New Revision: 10409

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
Log:
Maybe fix reported infinities/crazy numbers on bwlimitDelayTime and backed off 
%.

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-09-06 13:39:06 UTC 
(rev 10408)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-09-06 15:30:16 UTC 
(rev 10409)
@@ -2003,12 +2003,13 @@
                        localRoutingBackedOffUntil = routingBackedOffUntil;
                }
                synchronized(this) {
-                       if(now > lastSampleTime) {
-                               if (now > localRoutingBackedOffUntil) {
-                                       if (lastSampleTime > 
localRoutingBackedOffUntil) {
+                       if(now > lastSampleTime) { // don't report twice in the 
same millisecond
+                               if (now > localRoutingBackedOffUntil) { // not 
backed off
+                                       if (lastSampleTime > 
localRoutingBackedOffUntil) { // last sample after last backoff
                                                backedOffPercent.report(0.0);
                                        } else {
-                                               
backedOffPercent.report((double)(localRoutingBackedOffUntil - 
lastSampleTime)/(double)(now - lastSampleTime));
+                                               if(localRoutingBackedOffUntil > 
0)
+                                                       
backedOffPercent.report((double)(localRoutingBackedOffUntil - 
lastSampleTime)/(double)(now - lastSampleTime));
                                        }
                                } else {
                                        backedOffPercent.report(1.0);

Modified: trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java
===================================================================
--- trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java      
2006-09-06 13:39:06 UTC (rev 10408)
+++ trunk/freenet/src/freenet/support/math/TimeDecayingRunningAverage.java      
2006-09-06 15:30:16 UTC (rev 10409)
@@ -133,6 +133,10 @@
                synchronized(this) {
                        if(d < minReport) d = minReport;
                        if(d > maxReport) d = maxReport;
+                       if(Double.isInfinite(d) || Double.isNaN(d)) {
+                               Logger.error(this, "Reported infinity or NaN to 
"+this+" : "+d, new Exception("error"));
+                               return;
+                       }
                        totalReports++;
                        if(!started) {
                                curValue = d;


Reply via email to