Author: zothar
Date: 2006-11-05 03:26:39 +0000 (Sun, 05 Nov 2006)
New Revision: 10821

Modified:
   trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
   trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/KeyTracker.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/support/TimeUtil.java
Log:
Format some log message times.  Add fractional seconds to TimeUtil.  Fix a node 
statistic via FCP bug.

Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-11-05 
02:28:23 UTC (rev 10820)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2006-11-05 
03:26:39 UTC (rev 10821)
@@ -31,6 +31,7 @@
 import freenet.node.PeerNode;
 import freenet.support.FileLoggerHook;
 import freenet.support.Logger;
+import freenet.support.TimeUtil;

 public class UdpSocketManager extends Thread {

@@ -400,9 +401,9 @@
                                        Message removed = 
(Message)_unclaimed.removeFirst();
                                        long messageLifeTime = 
System.currentTimeMillis() - removed.localInstantiationTime;
                                        if ((removed.getSource()) instanceof 
PeerNode) {
-                                           Logger.normal(this, "Dropping 
unclaimed from "+removed.getSource().getPeer()+", lived "+messageLifeTime+"ms : 
"+removed);
+                                           Logger.normal(this, "Dropping 
unclaimed from "+removed.getSource().getPeer()+", lived 
"+TimeUtil.formatTime(messageLifeTime, 2, true)+" : "+removed);
                                        } else {
-                                           Logger.normal(this, "Dropping 
unclaimed, lived "+messageLifeTime+"ms : "+removed);
+                                           Logger.normal(this, "Dropping 
unclaimed, lived "+TimeUtil.formatTime(messageLifeTime, 2, true)+" : "+removed);
                                        }
                                    }
                                    _unclaimed.addLast(m);

Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java     2006-11-05 
02:28:23 UTC (rev 10820)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java     2006-11-05 
03:26:39 UTC (rev 10821)
@@ -35,6 +35,7 @@
 import freenet.support.BitArray;
 import freenet.support.DoubleTokenBucket;
 import freenet.support.Logger;
+import freenet.support.TimeUtil;

 /**
  * @author ian
@@ -248,7 +249,7 @@
                                                _sendComplete = true;
                                                _senderThread.notifyAll();
                                        }
-                                       Logger.error(this, "Terminating send 
"+_uid+" to "+_destination+" from "+_usm.getPortNumber()+" as we haven't heard 
from receiver in "+(now - timeAllSent)+"ms.");
+                                       Logger.error(this, "Terminating send 
"+_uid+" to "+_destination+" from "+_usm.getPortNumber()+" as we haven't heard 
from receiver in "+TimeUtil.formatTime((now - timeAllSent), 2, true)+".");
                                        return false;
                                } else {
                                        if(logMINOR) Logger.minor(this, 
"Ignoring timeout: timeAllSent="+timeAllSent+" ("+(System.currentTimeMillis() - 
timeAllSent)+"), getNumSent="+getNumSent()+"/"+_prb.getNumPackets());

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-11-05 
02:28:23 UTC (rev 10820)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2006-11-05 
03:26:39 UTC (rev 10821)
@@ -20,6 +20,7 @@
 import freenet.support.Fields;
 import freenet.support.HexUtil;
 import freenet.support.Logger;
+import freenet.support.TimeUtil;
 import freenet.support.WouldBlockException;

 /**
@@ -215,7 +216,7 @@
         int packetType = payload[2];
         int version = payload[0];

-        if(logMINOR) Logger.minor(this, "Received auth packet for 
"+pn.getPeer()+" (pt="+packetType+", v="+version+", nt="+negType+") (last 
packet sent "+delta+"ms ago) from "+replyTo+"");
+        if(logMINOR) Logger.minor(this, "Received auth packet for 
"+pn.getPeer()+" (pt="+packetType+", v="+version+", nt="+negType+") (last 
packet sent "+TimeUtil.formatTime(delta, 2, true)+" ago) from "+replyTo+"");

         /* Format:
          * 1 byte - version number (1)
@@ -435,13 +436,13 @@
      */
     private void sendAuthPacket(int version, int negType, int phase, byte[] 
data, PeerNode pn, Peer replyTo) {
         long now = System.currentTimeMillis();
-        int delta = (int) (now - pn.lastSentPacketTime());
+        long delta = now - pn.lastSentPacketTime();
         byte[] output = new byte[data.length+3];
         output[0] = (byte) version;
         output[1] = (byte) negType;
         output[2] = (byte) phase;
         System.arraycopy(data, 0, output, 3, data.length);
-        if(logMINOR) Logger.minor(this, "Sending auth packet for 
"+pn.getPeer()+" (ph="+phase+", v="+version+", nt="+negType+") (last packet 
sent "+delta+"ms ago) to "+replyTo+" data.length="+data.length);
+        if(logMINOR) Logger.minor(this, "Sending auth packet for 
"+pn.getPeer()+" (ph="+phase+", v="+version+", nt="+negType+") (last packet 
sent "+TimeUtil.formatTime(delta, 2, true)+" ago) to "+replyTo+" 
data.length="+data.length);
         sendAuthPacket(output, pn, replyTo);
     }

@@ -849,7 +850,7 @@

         if((seqNumber != -1) && tracker.alreadyReceived(seqNumber)) {
             tracker.queueAck(seqNumber);
-            Logger.error(this, "Received packet twice ("+seqNumber+") from 
"+tracker.pn.getPeer()+": "+seqNumber+" ("+(int) 
tracker.pn.pingAverage.currentValue()+"ms ping avg)");
+            Logger.error(this, "Received packet twice ("+seqNumber+") from 
"+tracker.pn.getPeer()+": "+seqNumber+" ("+TimeUtil.formatTime((long) 
tracker.pn.pingAverage.currentValue(), 2, true)+" ping avg)");
             return;
         }


Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2006-11-05 02:28:23 UTC 
(rev 10820)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2006-11-05 03:26:39 UTC 
(rev 10821)
@@ -17,6 +17,7 @@
 import freenet.support.LimitedRangeIntByteArrayMapElement;
 import freenet.support.Logger;
 import freenet.support.ReceivedPacketNumbers;
+import freenet.support.TimeUtil;
 import freenet.support.UpdatableSortedLinkedListItem;
 import freenet.support.UpdatableSortedLinkedListKilledException;
 import freenet.support.UpdatableSortedLinkedListWithForeignIndex;
@@ -342,7 +343,7 @@
                public void onAcked() {
                        long t = Math.max(0, System.currentTimeMillis() - 
createdTime);
                        pn.pingAverage.report(t);
-                       if(logMINOR) Logger.minor(this, "Reported round-trip 
time of "+t+"ms on "+pn.getPeer()+" (avg "+pn.pingAverage.currentValue()+"ms, 
#"+packetNumber+")");
+                       if(logMINOR) Logger.minor(this, "Reported round-trip 
time of "+TimeUtil.formatTime(t, 2, true)+" on "+pn.getPeer()+" (avg 
"+TimeUtil.formatTime((long)pn.pingAverage.currentValue(),2,true)+", 
#"+packetNumber+")");
                }

                long urgentDelay() {
@@ -564,7 +565,7 @@
         QueuedAckRequest qr = 
(QueuedAckRequest)ackRequestQueue.removeByKey(new Integer(seqNo));
        if(qr != null) qr.onAcked();
        else
-               Logger.normal(this, "Removing ack request twice? Null on 
"+seqNo+" from "+pn.getPeer()+" ("+(int) pn.pingAverage.currentValue()+"ms ping 
avg)");
+               Logger.normal(this, "Removing ack request twice? Null on 
"+seqNo+" from "+pn.getPeer()+" ("+TimeUtil.formatTime((int) 
pn.pingAverage.currentValue(), 2, true)+" ping avg)");
     }

     /**

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-11-05 02:28:23 UTC (rev 
10820)
+++ trunk/freenet/src/freenet/node/Node.java    2006-11-05 03:26:39 UTC (rev 
10821)
@@ -97,6 +97,7 @@
 import freenet.support.LRUQueue;
 import freenet.support.Logger;
 import freenet.support.SimpleFieldSet;
+import freenet.support.TimeUtil;
 import freenet.support.TokenBucket;
 import freenet.support.math.RunningAverage;
 import freenet.support.math.TimeDecayingRunningAverage;
@@ -1553,13 +1554,13 @@
                                        if(logMINOR) Logger.minor(this, 
"Accepting request anyway (take one every 10 secs to keep bwlimitDelayTime 
updated)");
                                } else {
                                        pInstantRejectIncoming.report(1.0);
-                                       return ">MAX_PING_TIME ("+pingTime+")";
+                                       return ">MAX_PING_TIME 
("+TimeUtil.formatTime((long)pingTime, 2, true)+")";
                                }
                        } else if(pingTime > SUB_MAX_PING_TIME) {
                                double x = ((double)(pingTime - 
SUB_MAX_PING_TIME)) / (MAX_PING_TIME - SUB_MAX_PING_TIME);
                                if(random.nextDouble() < x) {
                                        pInstantRejectIncoming.report(1.0);
-                                       return ">SUB_MAX_PING_TIME 
("+pingTime+")";
+                                       return ">SUB_MAX_PING_TIME 
("+TimeUtil.formatTime((long)pingTime, 2, true)+")";
                                }
                        }

@@ -1569,13 +1570,13 @@
                                        if(logMINOR) Logger.minor(this, 
"Accepting request anyway (take one every 10 secs to keep bwlimitDelayTime 
updated)");
                                } else {
                                        pInstantRejectIncoming.report(1.0);
-                                       return ">MAX_THROTTLE_DELAY 
("+bwlimitDelayTime+")";
+                                       return ">MAX_THROTTLE_DELAY 
("+TimeUtil.formatTime((long)bwlimitDelayTime, 2, true)+")";
                                }
                        } else if(bwlimitDelayTime > SUB_MAX_THROTTLE_DELAY) {
                                double x = ((double)(bwlimitDelayTime - 
SUB_MAX_THROTTLE_DELAY)) / (MAX_THROTTLE_DELAY - SUB_MAX_THROTTLE_DELAY);
                                if(random.nextDouble() < x) {
                                        pInstantRejectIncoming.report(1.0);
-                                       return ">SUB_MAX_THROTTLE_DELAY 
("+bwlimitDelayTime+")";
+                                       return ">SUB_MAX_THROTTLE_DELAY 
("+TimeUtil.formatTime((long)bwlimitDelayTime, 2, true)+")";
                                }
                        }

@@ -1867,7 +1868,7 @@
                fs.put("storeHits", Long.toString(storeHits));
                fs.put("storeMisses", Long.toString(storeMisses));
                fs.put("storeAccesses", Long.toString(storeAccesses));
-               fs.put("percentCachedStoreHitsOfAccesses", 
Double.toString(percentCachedStoreHitsOfAccesses));
+               fs.put("percentStoreHitsOfAccesses", 
Double.toString(percentStoreHitsOfAccesses));
                fs.put("overallAccesses", Long.toString(overallAccesses));
                fs.put("avgStoreAccessRate", 
Double.toString(avgStoreAccessRate));


Modified: trunk/freenet/src/freenet/support/TimeUtil.java
===================================================================
--- trunk/freenet/src/freenet/support/TimeUtil.java     2006-11-05 02:28:23 UTC 
(rev 10820)
+++ trunk/freenet/src/freenet/support/TimeUtil.java     2006-11-05 03:26:39 UTC 
(rev 10821)
@@ -18,58 +18,79 @@

 package freenet.support;

+import java.text.DecimalFormat;
+
 /**
  * Time formatting utility.
- * Formats milliseconds into a week/day/hour/second string (without 
milliseconds).
+ * Formats milliseconds into a week/day/hour/second/milliseconds string.
  */
 public class TimeUtil {
-       public static String formatTime(long timeInterval, int maxTerms) {
+       public static String formatTime(long timeInterval, int maxTerms, 
boolean withSecondFractions) {
                StringBuffer sb = new StringBuffer(64);
-               long l = timeInterval / 1000;  // ms -> s
+               long l = timeInterval;
                int termCount = 0;
                //
-               int weeks = (int)(l / (7*24*60*60));
+               int weeks = (int)(l / ((long)7*24*60*60*1000));
                if (weeks > 0) {
                  sb.append(weeks + "w");
                  termCount++;
-                 l = l - (weeks * (7*24*60*60));
+                 l = l - ((long)weeks * ((long)7*24*60*60*1000));
                }
                //
-               int days = (int)(l / (24*60*60));
+               int days = (int)(l / ((long)24*60*60*1000));
                if (days > 0) {
                  sb.append(days + "d");
                  termCount++;
-                 l = l - (days * (24*60*60));
+                 l = l - ((long)days * ((long)24*60*60*1000));
                }
                if(termCount >= maxTerms) {
                  return sb.toString();
                }
                //
-               int hours = (int)(l / (60*60));
+               int hours = (int)(l / ((long)60*60*1000));
                if (hours > 0) {
                  sb.append(hours + "h");
                  termCount++;
-                 l = l - (hours * (60*60));
+                 l = l - ((long)hours * ((long)60*60*1000));
                }
                if(termCount >= maxTerms) {
                  return sb.toString();
                }
                //
-               int minutes = (int)(l / 60);
+               int minutes = (int)(l / ((long)60*1000));
                if (minutes > 0) {
                  sb.append(minutes + "m");
                  termCount++;
-                 l = l - (minutes * 60);
+                 l = l - ((long)minutes * ((long)60*1000));
                }
                if(termCount >= maxTerms) {
                  return sb.toString();
                }
+               if(withSecondFractions && ((maxTerms - termCount) >= 2)) {
+                       if (l > 0) {
+                               double fractionalSeconds = ((double) l) / 
((double) 1000.0);
+                               DecimalFormat fix4 = new 
DecimalFormat("0.0000");
+                               sb.append(fix4.format(fractionalSeconds) + "s");
+                               termCount++;
+                               l = l - ((long)fractionalSeconds * (long)1000);
+                       }
+               } else {
+                       int seconds = (int)(l / (long)1000);
+                       if (seconds > 0) {
+                               sb.append(seconds + "s");
+                               termCount++;
+                               l = l - ((long)seconds * (long)1000);
+                       }
+               }
                //
-               sb.append(l + "s");
                return sb.toString();
        }

        public static String formatTime(long timeInterval) {
-               return formatTime(timeInterval, 2);
+               return formatTime(timeInterval, 2, false);
        }
+       
+       public static String formatTime(long timeInterval, int maxTerms) {
+               return formatTime(timeInterval, maxTerms, false);
+       }
 }


Reply via email to