Я нашел решение, но не то, почему оно работало раньше.
channel.register(selector, SelectionKey.OP_CONNECT | SelectionKey.OP_READ);
больше не работает.
Мне пришлось зарегистрировать другой селектор, имеющий дело только с OP_READ, и теперь он работает.
channel.register(readSelector, SelectionKey.OP_READ);
channel.register(connectSelector, SelectionKey.OP_CONNECT);
if(connectSelector.select() > 0){
//Do connect stuff
} else if(readSelector.select() > 0){
//Do read stuff
}
Надеюсь, это избавит от головной боли.
EDIT:
http://code.google.com/p/android/issues/detail?id=15055
Я выложил это как проблему на трекер Android, и это находится в стадии расследования