Author: toad
Date: 2007-07-13 18:53:09 +0000 (Fri, 13 Jul 2007)
New Revision: 14088
Modified:
trunk/freenet/src/freenet/node/OpennetManager.java
Log:
Fix ArrayIndexOutOfBoundsException when all nodes locked
Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java 2007-07-13 18:48:00 UTC
(rev 14087)
+++ trunk/freenet/src/freenet/node/OpennetManager.java 2007-07-13 18:53:09 UTC
(rev 14088)
@@ -209,17 +209,18 @@
peersLRU.remove(toDrop);
dropList.add(toDrop);
}
- if(!dropList.isEmpty())
+ if(ret) {
timeLastDropped = System.currentTimeMillis();
- if(nodeToAddNow != null) {
- if(!node.peers.addPeer(nodeToAddNow)) {
- // Can't add it, already present (some
sort of race condition)
- PeerNode readd = (PeerNode)
dropList.remove(dropList.size()-1);
- peersLRU.pushLeast(readd);
- ret = false;
- Logger.error(this, "Could not add
opennet peer "+nodeToAddNow+" because already in list");
- } else {
- Logger.error(this, "Added opennet peer
"+nodeToAddNow+" after clearing "+dropList.size()+" items");
+ if(nodeToAddNow != null) {
+ if(!node.peers.addPeer(nodeToAddNow)) {
+ // Can't add it, already
present (some sort of race condition)
+ PeerNode readd = (PeerNode)
dropList.remove(dropList.size()-1);
+ peersLRU.pushLeast(readd);
+ ret = false;
+ Logger.error(this, "Could not
add opennet peer "+nodeToAddNow+" because already in list");
+ } else {
+ Logger.error(this, "Added
opennet peer "+nodeToAddNow+" after clearing "+dropList.size()+" items");
+ }
}
}
}