Author: zothar
Date: 2006-06-25 05:49:58 +0000 (Sun, 25 Jun 2006)
New Revision: 9385
Modified:
trunk/freenet/src/freenet/node/PeerManager.java
Log:
Fix an NPE in the missRoutingDistance calculation code.
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2006-06-25 05:31:21 UTC
(rev 9384)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2006-06-25 05:49:58 UTC
(rev 9385)
@@ -383,13 +383,15 @@
*/
public PeerNode closerPeer(PeerNode pn, HashSet routedTo, HashSet
notIgnored, double loc, boolean ignoreSelf) {
PeerNode best = _closerPeer(pn, routedTo, notIgnored, loc, ignoreSelf,
false);
- if (node.getToadletContainer().isAdvancedDarknetEnabled()) {
+ if (best != null &&
node.getToadletContainer().isAdvancedDarknetEnabled()) {
PeerNode nbo = _closerPeer(pn, routedTo, notIgnored, loc,
ignoreSelf, true);
- node.MissRoutingDistance.report(distance(best,
nbo.getLocation().getValue()));
- int numberOfConnected =
node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_CONNECTED);
- int numberOfRoutingBackedOff =
node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_ROUTING_BACKED_OFF);
- if (numberOfRoutingBackedOff + numberOfConnected > 0 ) {
- node.BackedoffPercent.report((double)
numberOfRoutingBackedOff / (double) (numberOfRoutingBackedOff +
numberOfConnected));
+ if(nbo != null) {
+ node.MissRoutingDistance.report(distance(best,
nbo.getLocation().getValue()));
+ int numberOfConnected =
node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_CONNECTED);
+ int numberOfRoutingBackedOff =
node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_ROUTING_BACKED_OFF);
+ if (numberOfRoutingBackedOff + numberOfConnected > 0 ) {
+ node.BackedoffPercent.report((double)
numberOfRoutingBackedOff / (double) (numberOfRoutingBackedOff +
numberOfConnected));
+ }
}
}
return best;