Author: toad
Date: 2008-01-07 12:36:46 +0000 (Mon, 07 Jan 2008)
New Revision: 16955

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Cache shortToString(), it's widely used in logging.

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2008-01-06 22:51:49 UTC 
(rev 16954)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2008-01-07 12:36:46 UTC 
(rev 16955)
@@ -509,6 +509,7 @@
                } else {
                        detectedPeer = (Peer) nominalPeer.firstElement();
                }
+               updateShortToString();

                // Don't create trackers until we have a key
                currentTracker = null;
@@ -574,6 +575,7 @@
                                }
                                if(p != null)
                                        detectedPeer = p;
+                               updateShortToString();
                                String tempTimeLastReceivedPacketString = 
metadata.get("timeLastReceivedPacket");
                                if(tempTimeLastReceivedPacketString != null) {
                                        long tempTimeLastReceivedPacket = 
Long.parseLong(tempTimeLastReceivedPacketString);
@@ -850,6 +852,7 @@
                        handshakeIPs = localHandshakeIPs;
                        if((detectedDuplicate != null) && 
detectedDuplicate.equals(localDetectedPeer))
                                localDetectedPeer = detectedPeer = 
detectedDuplicate;
+                       updateShortToString();
                }
                if(logMINOR) {
                        Logger.minor(this, "3: detectedPeer = " + 
localDetectedPeer + " (" + localDetectedPeer.getAddress(false) + ')');
@@ -1514,6 +1517,7 @@
                synchronized(this) {
                        if((newPeer != null) && ((detectedPeer == null) || 
!detectedPeer.equals(newPeer))) {
                                this.detectedPeer = newPeer;
+                               updateShortToString();
                                this.lastAttemptedHandshakeIPUpdateTime = 0;
                                if(!isConnected)
                                        return;
@@ -1552,13 +1556,18 @@
                return unverifiedTracker;
        }

+       private String shortToString;
+       private void updateShortToString() {
+               shortToString = super.toString() + '@' + detectedPeer + '@' + 
HexUtil.bytesToHex(identity);
+       }
+       
        /**
        * @return short version of toString()
        * *** Note that this is not synchronized! It is used by logging in code 
paths that
        * will deadlock if it is synchronized! ***
        */
        public String shortToString() {
-               return super.toString() + '@' + detectedPeer + '@' + 
HexUtil.bytesToHex(identity);
+               return shortToString;
        }

        public String toString() {


Reply via email to