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();