Author: toad
Date: 2007-02-17 00:12:48 +0000 (Sat, 17 Feb 2007)
New Revision: 11825

Modified:
   trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
Log:
Prevent ArithmeticException. (There may be a deeper problem?)

Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2007-02-16 22:34:17 UTC (rev 11824)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java       
2007-02-17 00:12:48 UTC (rev 11825)
@@ -219,16 +219,18 @@
                                        activityList.addChild("li", "Total 
Input:\u00a0" + SizeUtil.formatSize(total[1], true) + "\u00a0(" + 
SizeUtil.formatSize(total_input_rate, true) + "ps)");
                                        long[] rate = node.getNodeIOStats();
                                        long delta = (rate[5] - rate[2]) / 1000;
-                                       long output_rate = (rate[3] - rate[0]) 
/ delta;
-                                       long input_rate = (rate[4] - rate[1]) / 
delta;
-                                       SubConfig nodeConfig = 
node.config.get("node");
-                                       int outputBandwidthLimit = 
nodeConfig.getInt("outputBandwidthLimit");
-                                       int inputBandwidthLimit = 
nodeConfig.getInt("inputBandwidthLimit");
-                                       if(inputBandwidthLimit == -1) {
-                                               inputBandwidthLimit = 
outputBandwidthLimit * 4;
+                                       if(delta > 0) {
+                                               long output_rate = (rate[3] - 
rate[0]) / delta;
+                                               long input_rate = (rate[4] - 
rate[1]) / delta;
+                                               SubConfig nodeConfig = 
node.config.get("node");
+                                               int outputBandwidthLimit = 
nodeConfig.getInt("outputBandwidthLimit");
+                                               int inputBandwidthLimit = 
nodeConfig.getInt("inputBandwidthLimit");
+                                               if(inputBandwidthLimit == -1) {
+                                                       inputBandwidthLimit = 
outputBandwidthLimit * 4;
+                                               }
+                                               activityList.addChild("li", 
"Output Rate:\u00a0" + SizeUtil.formatSize(output_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(outputBandwidthLimit, true)+"ps)");
+                                               activityList.addChild("li", 
"Input Rate:\u00a0" + SizeUtil.formatSize(input_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(inputBandwidthLimit, true)+"ps)");
                                        }
-                                       activityList.addChild("li", "Output 
Rate:\u00a0" + SizeUtil.formatSize(output_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(outputBandwidthLimit, true)+"ps)");
-                                       activityList.addChild("li", "Input 
Rate:\u00a0" + SizeUtil.formatSize(input_rate, true) + "ps 
(of\u00a0"+SizeUtil.formatSize(inputBandwidthLimit, true)+"ps)");
                                }
                        }



Reply via email to