Author: robert
Date: 2008-02-09 01:00:32 +0000 (Sat, 09 Feb 2008)
New Revision: 17731

Modified:
   trunk/freenet/src/freenet/node/NetworkIDManager.java
Log:
off-by-one


Modified: trunk/freenet/src/freenet/node/NetworkIDManager.java
===================================================================
--- trunk/freenet/src/freenet/node/NetworkIDManager.java        2008-02-09 
00:59:11 UTC (rev 17730)
+++ trunk/freenet/src/freenet/node/NetworkIDManager.java        2008-02-09 
01:00:32 UTC (rev 17731)
@@ -596,8 +596,14 @@
                        PeerNetworkGroup newGroup = new PeerNetworkGroup();
                        newNetworkGroups.add(newGroup);
                        todo.remove(mostConnected);
-                       //NB: as a side effect, this function will 
automatically remove the members from 'todo'.
-                       List members=xferConnectedPeerSetFor(mostConnected, 
todo);
+                       List members;
+                       if (todo.isEmpty()) {
+                               //sad... it looks like this guy gets a group to 
himself
+                               members=new ArrayList();
+                       } else {
+                               //NB: as a side effect, this function will 
automatically remove the members from 'todo'.
+                               members=xferConnectedPeerSetFor(mostConnected, 
todo);
+                       }
                        members.add(mostConnected);
                        newGroup.setMembers(members);
                        newGroup.setForbiddenIds(takenNetworkIds);


Reply via email to