Author: toad
Date: 2006-06-15 17:25:37 +0000 (Thu, 15 Jun 2006)
New Revision: 9210

Modified:
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/Version.java
   trunk/freenet/src/freenet/support/FileLoggerHook.java
Log:
815: Make locking consistent on FileLoggerHook.logFiles, even when it doesn't 
need to be.
Maybe fix #468.

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-06-15 02:53:59 UTC 
(rev 9209)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-06-15 17:25:37 UTC 
(rev 9210)
@@ -1023,6 +1023,8 @@
     /**
      * Update timeLastReceivedPacket
      * @throws NotConnectedException 
+     * @param dontLog If true, don't log an error or throw an exception if we 
are not connected. This
+     * can be used in handshaking when the connection hasn't been verified yet.
      */
     synchronized void receivedPacket(boolean dontLog) throws 
NotConnectedException {
         if(isConnected == false && !dontLog) {

Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-15 02:53:59 UTC (rev 
9209)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-15 17:25:37 UTC (rev 
9210)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 814;
+       private static final int buildNumber = 815;

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

Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
===================================================================
--- trunk/freenet/src/freenet/support/FileLoggerHook.java       2006-06-15 
02:53:59 UTC (rev 9209)
+++ trunk/freenet/src/freenet/support/FileLoggerHook.java       2006-06-15 
17:25:37 UTC (rev 9210)
@@ -234,8 +234,10 @@
                                }
                                filename = getHourLogName(gc, true);
                                currentFilename = new File(filename);
-                               if((!logFiles.isEmpty()) && 
((OldLogFile)logFiles.getLast()).filename.equals(currentFilename)) {
-                                       logFiles.removeLast();
+                               synchronized(logFiles) {
+                                       if((!logFiles.isEmpty()) && 
((OldLogFile)logFiles.getLast()).filename.equals(currentFilename)) {
+                                               logFiles.removeLast();
+                                       }
                                }
                                logStream = openNewLogFile(currentFilename, 
true);
                                if(latestFile != null) {
@@ -457,6 +459,9 @@
                        while(oldLogFilesDiskSpaceUsage > 
maxOldLogfilesDiskUsage) {
                                OldLogFile olf;
                                synchronized(logFiles) {
+                                       if(logFiles.isEmpty()) {
+                                               System.err.println("ERROR: 
INCONSISTENT LOGGER TOTALS: Log file list is empty but still used 
"+oldLogFilesDiskSpaceUsage+" bytes!");
+                                       }
                                        olf = (OldLogFile) 
logFiles.removeFirst();
                                }
                                olf.filename.delete();
@@ -543,7 +548,9 @@
                                if(oldFile != null) {
                                        long l = oldFile.length();
                                        OldLogFile olf = new 
OldLogFile(oldFile, lastStartTime, startTime, l);
-                                       logFiles.addLast(olf);
+                                       synchronized(logFiles) {
+                                               logFiles.addLast(olf);
+                                       }
                                        oldLogFilesDiskSpaceUsage += l;
                                }
                                lastStartTime = startTime;
@@ -556,7 +563,9 @@
                if(oldFile != null) {
                        long l = oldFile.length();
                        OldLogFile olf = new OldLogFile(oldFile, lastStartTime, 
System.currentTimeMillis(), l);
-                       logFiles.addLast(olf);
+                       synchronized(logFiles) {
+                               logFiles.addLast(olf);
+                       }
                        oldLogFilesDiskSpaceUsage += l;
                }
                trimOldLogFiles();


Reply via email to