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