Author: toad
Date: 2007-11-27 18:42:11 +0000 (Tue, 27 Nov 2007)
New Revision: 15982
Modified:
trunk/freenet/src/freenet/io/AddressTracker.java
trunk/freenet/src/freenet/io/AddressTrackerItem.java
Log:
Fix loading the tracker from the stored data
Modified: trunk/freenet/src/freenet/io/AddressTracker.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-27 18:41:40 UTC
(rev 15981)
+++ trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-27 18:42:11 UTC
(rev 15982)
@@ -95,25 +95,29 @@
if(version != 1)
throw new FSParseException("Unknown Version "+version);
long savedBootID = fs.getLong("BootID");
- if(savedBootID != lastBootID) throw new FSParseException("Wrong
boot ID - maybe unclean shutdown?");
+ if(savedBootID != lastBootID) throw new FSParseException("Wrong
boot ID - maybe unclean shutdown? Last was "+lastBootID+" stored "+savedBootID);
timeDefinitelyNoPacketsReceived =
fs.getLong("TimeDefinitelyNoPacketsReceived");
timeDefinitelyNoPacketsSent =
fs.getLong("TimeDefinitelyNoPacketsSent");
peerTrackers = new HashMap();
SimpleFieldSet peers = fs.getSubset("Peers");
Iterator i = peers.directSubsetNameIterator();
+ if(i != null) {
while(i.hasNext()) {
SimpleFieldSet peer = peers.subset((String)i.next());
PeerAddressTrackerItem item = new
PeerAddressTrackerItem(peer);
peerTrackers.put(item.peer, item);
}
+ }
ipTrackers = new HashMap();
SimpleFieldSet ips = fs.getSubset("IPs");
- i = peers.directSubsetNameIterator();
+ i = ips.directSubsetNameIterator();
+ if(i != null) {
while(i.hasNext()) {
SimpleFieldSet peer = ips.subset((String)i.next());
InetAddressAddressTrackerItem item = new
InetAddressAddressTrackerItem(peer);
ipTrackers.put(item.addr, item);
}
+ }
}
public void sentPacketTo(Peer peer) {
Modified: trunk/freenet/src/freenet/io/AddressTrackerItem.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTrackerItem.java 2007-11-27
18:41:40 UTC (rev 15981)
+++ trunk/freenet/src/freenet/io/AddressTrackerItem.java 2007-11-27
18:42:11 UTC (rev 15982)
@@ -75,6 +75,8 @@
packetsSent = fs.getLong("PacketsSent");
packetsReceived = fs.getLong("PacketsReceived");
SimpleFieldSet gaps = fs.getSubset("Gaps");
+ gapLengths = new long[TRACK_GAPS];
+ gapLengthRecvTimes = new long[TRACK_GAPS];
for(int i=0;i<TRACK_GAPS;i++) {
SimpleFieldSet gap = gaps.subset(Integer.toString(i));
if(gap == null) {