Author: toad
Date: 2005-11-26 00:26:12 +0000 (Sat, 26 Nov 2005)
New Revision: 7618

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/PeerManager.java
   trunk/freenet/src/freenet/node/ThrottledPacketSender.java
   trunk/freenet/src/freenet/node/Version.java
Log:
233:
Logging.
Show number of running requests, inserts etc in STATUS.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2005-11-26 00:11:24 UTC (rev 
7617)
+++ trunk/freenet/src/freenet/node/Node.java    2005-11-26 00:26:12 UTC (rev 
7618)
@@ -768,7 +768,7 @@
      * @return Some status information.
      */
     public String getStatus() {
-        return peers.getStatus();
+        return peers.getStatus()+"\nInserts: 
"+insertSenders.size()+"\nRequests: "+requestSenders.size()+"\nTransferring 
requests: "+this.transferringRequestSenders.size();
     }

     /**

Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java     2005-11-26 00:11:24 UTC 
(rev 7617)
+++ trunk/freenet/src/freenet/node/PeerManager.java     2005-11-26 00:26:12 UTC 
(rev 7618)
@@ -286,6 +286,7 @@
      */
     public PeerNode closerPeer(PeerNode pn, HashSet routedTo, double loc, 
boolean ignoreSelf) {
         PeerNode[] peers = connectedPeers;
+        Logger.minor(this, "Choosing closest peer: 
connectedPeers="+peers.length);
         double bestDiff = Double.MAX_VALUE;
         double maxDiff = 0.0;
         if(!ignoreSelf)

Modified: trunk/freenet/src/freenet/node/ThrottledPacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/ThrottledPacketSender.java   2005-11-26 
00:11:24 UTC (rev 7617)
+++ trunk/freenet/src/freenet/node/ThrottledPacketSender.java   2005-11-26 
00:26:12 UTC (rev 7618)
@@ -32,21 +32,35 @@
                        this.msg = msg2;
                        this.pn = pn2;
                        sent = false;
+                       queuedTime = System.currentTimeMillis();
                }

                final Message msg;
                final PeerNode pn;
+               final long queuedTime;
                boolean sent;
+               boolean lostConn;
+               RuntimeException re;
+               Error err;

-               public void waitUntilSent() {
+               public void waitUntilSent() throws NotConnectedException {
                        synchronized(this) {
-                               while(!sent) {
+                               while(!(sent || lostConn || re != null || err 
!= null)) {
                                        try {
                                                wait(10*1000);
                                        } catch (InterruptedException e) {
                                                // Ignore
                                        }
                                }
+                               if(lostConn) throw new NotConnectedException();
+                               if(re != null) throw re;
+                               if(err != null) throw err;
+                               long timeDiff = System.currentTimeMillis() - 
queuedTime;
+                               if(timeDiff > 30*1000)
+                                       Logger.error(this, "Took "+timeDiff+" 
ms to send packet "+msg+" to "+pn);
+                               else
+                                       Logger.minor(this, "Took "+timeDiff+" 
ms to send packet "+msg+" to "+pn);
+                               
                        }
                }
        }
@@ -62,7 +76,7 @@
                ThrottledPacket p = new ThrottledPacket(msg, pn);
                synchronized(queuedPackets) {
                        queuedPackets.addLast(p);
-                       queuedPackets.notify();
+                       queuedPackets.notifyAll();
                }
                return p;
        }
@@ -101,20 +115,39 @@
                                if(queuedPackets.isEmpty()) return false;
                                p = (ThrottledPacket) 
queuedPackets.removeFirst();
                        }
-                       if(!p.pn.isConnected()) continue;
+                       if(!p.pn.isConnected()) {
+                               synchronized(p) {
+                                       p.lostConn = true;
+                                       p.notifyAll();
+                               }
+                               continue;
+                       }
                        try {
                                p.pn.send(p.msg);
+                       } catch (NotConnectedException e) {
                                synchronized(p) {
-                                       p.sent = true;
+                                       p.lostConn = true;
                                        p.notifyAll();
                                }
+                               continue;
+                       } catch (RuntimeException e) {
+                               synchronized(p) {
+                                       p.re = e;
+                                       p.notifyAll();
+                               }
                                return true;
-                       } catch (NotConnectedException e) {
-                               continue;
-                       } catch (Throwable t) {
-                               Logger.error(this, "Caught "+t, t);
-                               continue;
+                       } catch (Error e) {
+                               synchronized(p) {
+                                       p.err = e;
+                                       p.notifyAll();
+                               }
+                               return true;
                        }
+                       synchronized(p) {
+                               p.sent = true;
+                               p.notifyAll();
+                       }
+                       return true;
                }
        }


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2005-11-26 00:11:24 UTC (rev 
7617)
+++ trunk/freenet/src/freenet/node/Version.java 2005-11-26 00:26:12 UTC (rev 
7618)
@@ -20,7 +20,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       public static final int buildNumber = 232;
+       public static final int buildNumber = 233;

        /** Oldest build of Fred we will talk to */
        public static final int lastGoodBuild = 232;


Reply via email to