Mercurial > hg > RemoteEditor > REPSessionManager
diff rep/channel/REPSelector.java @ 240:168dd841be51 iterator-bug-fig **INVALID**
selected key Interator fix.
author | kono |
---|---|
date | Sun, 31 Aug 2008 20:39:06 +0900 |
parents | 13e0520470dc |
children |
line wrap: on
line diff
--- a/rep/channel/REPSelector.java Sun Aug 31 19:49:35 2008 +0900 +++ b/rep/channel/REPSelector.java Sun Aug 31 20:39:06 2008 +0900 @@ -8,6 +8,7 @@ import java.nio.channels.spi.AbstractSelector; import java.nio.channels.spi.SelectorProvider; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; @@ -77,9 +78,13 @@ public Set<REPSelectionKey<P>> selectedKeys1() { Set<SelectionKey> keys = selector.selectedKeys(); + //System.err.println("Selected keys = "+keys); HashSet<REPSelectionKey<P>> newKeys = new HashSet<REPSelectionKey<P>>(); - for(SelectionKey k: keys) { + + for (Iterator<SelectionKey> it = keys.iterator();it.hasNext(); ) { + SelectionKey k = it.next(); newKeys.add(new REPSelectionKey<P>(k,this)); + it.remove(); } return newKeys; }