Author: toad
Date: 2007-06-23 14:34:49 +0000 (Sat, 23 Jun 2007)
New Revision: 13732

Modified:
   trunk/freenet/src/freenet/node/NodeDispatcher.java
Log:
Fix another NPE

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-06-23 13:04:07 UTC 
(rev 13731)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2007-06-23 14:34:49 UTC 
(rev 13732)
@@ -437,7 +437,7 @@

        class ProbeContext {

-               final WeakReference /* <PeerNode> */ srcRef; // FIXME make this 
a weak reference or something ? - Memory leak with high connection churn
+               private final WeakReference /* <PeerNode> */ srcRef; // FIXME 
make this a weak reference or something ? - Memory leak with high connection 
churn
                final WeakHashSet visitedPeers;
                final ProbeCallback cb;
                short counter;
@@ -457,6 +457,11 @@
                        this.cb = cb;
                }

+               public PeerNode getSource() {
+                       if(srcRef != null) return (PeerNode) srcRef.get();
+                       return null;
+               }
+
        }

        final LRUQueue recentProbeRequestIDs = new LRUQueue();
@@ -825,7 +830,7 @@
                }

                // Just propagate back to source
-               PeerNode origSource = (PeerNode) ctx.srcRef.get();
+               PeerNode origSource = (PeerNode) ctx.getSource();
                if(src != null) {
                        Message complete = DMT.createFNPProbeReply(id, target, 
nearest, best, counter++);
                        Message sub = 
m.getSubMessage(DMT.FNPBestRoutesNotTaken);
@@ -873,7 +878,7 @@
                                recentProbeContexts.popValue();
                }

-               PeerNode origSource = (PeerNode) ctx.srcRef.get();
+               PeerNode origSource = ctx.getSource();
                if(origSource != null) {
                        try {
                                origSource.sendAsync(m, null, 0, null);


Reply via email to