I'm actually about to release version 2.0 which has some significant improvements and quite a bit of help from Riven setting me straight on my mistakes on NIO. :-p
I'll take a look at your API and if something jumps out at me.
yes, I took a look at your code but it's rather an overkill for my needs. simplicity in function and implementation is my personal goal with this one. pure TCP/IP reliable message delivery with a couple of method calls, basically to demonstrate the core functionality of NIO and make it work.
I also remember from another thread how Riven showed up and proclaimed your code to be buggy with some very obvious errors in it. just to mention an example, I'm using unsynchronized LinkedList-s in a very obvious manner for the sole reason that I'd love to be publicly chastised by Riven also. :-) what could go wrong with an unsynchronized LinkedList other than a poll returning null while another thread is adding an object? my code should be able to handle that but I'll take a look at it today and synchronize them all.
if it's something with the NIO stuff, than I'm kind of lost because it works, it just breaks very unpredictably.
I haven't looked at your code so this might be obvious to you, but have you made sure you are turning off write ops afer you are done writing (or aren't trying to write data)? There are a few posts in these forums about that particular issue
believe me, I've read all those threads and then some more. you could take a look at the code, it's very short! (and it's Saturday) .
...you bring up a point though, because turning off write ops depends on one of those unsynchronized LinkedList accesse's return value, so I should have considered that a clue earlier.
Update: so I'm using Vector for now.
link