Author: toad
Date: 2008-02-06 22:39:20 +0000 (Wed, 06 Feb 2008)
New Revision: 17615

Modified:
   trunk/freenet/src/freenet/node/FailureTable.java
   trunk/freenet/src/freenet/node/FailureTableEntry.java
Log:
Fix a nasty NPE

Modified: trunk/freenet/src/freenet/node/FailureTable.java
===================================================================
--- trunk/freenet/src/freenet/node/FailureTable.java    2008-02-06 22:16:19 UTC 
(rev 17614)
+++ trunk/freenet/src/freenet/node/FailureTable.java    2008-02-06 22:39:20 UTC 
(rev 17615)
@@ -219,6 +219,7 @@
         */
        public void onFound(KeyBlock block) {
                Key key = block.getKey();
+               if(key == null) throw new NullPointerException();
                FailureTableEntry entry;
                synchronized(this) {
                        entry = (FailureTableEntry) entriesByKey.get(key);

Modified: trunk/freenet/src/freenet/node/FailureTableEntry.java
===================================================================
--- trunk/freenet/src/freenet/node/FailureTableEntry.java       2008-02-06 
22:16:19 UTC (rev 17614)
+++ trunk/freenet/src/freenet/node/FailureTableEntry.java       2008-02-06 
22:39:20 UTC (rev 17615)
@@ -13,7 +13,7 @@
 class FailureTableEntry implements TimedOutNodesList {

        /** The key */
-       Key key; // FIXME should this be stored compressed somehow e.g. just 
the routing key?
+       final Key key; // FIXME should this be stored compressed somehow e.g. 
just the routing key?
        /** The HTL at which it was requested last time. Any request of higher 
HTL will be let through. */
        short htl;
        /** Time of creation of this entry */
@@ -52,6 +52,7 @@
        static final int MAX_TIME_BETWEEN_REQUEST_AND_OFFER = 60 * 60 * 1000;

        FailureTableEntry(Key key) {
+               this.key = key;
                if(key == null) throw new NullPointerException();
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                long now = System.currentTimeMillis();
@@ -70,10 +71,10 @@
        }

        FailureTableEntry(Key key2, short htl2, PeerNode[] requestors, 
PeerNode[] requested) {
-               if(key == null) throw new NullPointerException();
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
                long now = System.currentTimeMillis();
                this.key = key2;
+               if(key == null) throw new NullPointerException();
                this.htl = htl2;
                creationTime = now;
                receivedTime = now;


Reply via email to