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) {


Reply via email to