Hi Trustin, Thanks a lot, I have taken the IoFutureListener approach. Btw, It's a real flexible and good design to have all these listeners.
Cheers, Qi Trustin Lee wrote: > > Hi Qi, > > It's not a bug but a kind of dead lock caused by misuse of the API. > > You are usually not supposed to call IoFuture.join() within an > IoHandler because the IoHandler methods might be being executed in the > same thread with the I/O processor thread. You wrote something and > you call join() to wait for the I/O processor thread to finish the > write operation in the I/O processor thread, then join() won't return > at all. MINA 2 detects this kind of situation automatically and emits > advisory exception, but it's not in MINA 1.x unfortunately. > > The alternative to join() is adding an IoFutureListener. > > HTH, > Trustin > > On Dec 17, 2007 4:48 PM, Qi <[EMAIL PROTECTED]> wrote: >> >> Hi there, >> >> I've just found a possible bug in MINA Datagram transport. >> >> In my handler class, I was trying to write some messages once the >> sessionOpened event is fired, while the program will hang if I get the >> writeFuture and call join() on it. >> If I call join with a timeout parameter, after the operation gets >> timeout, >> WriteFuture.isWritten returns false. >> (Same senario would go through if it's via SocketConnector transport, as >> showing in the sumup example.) >> >> >> However, if I don't place the write operation inside sessionOpened(); >> instead, I placed they after DatagramConnector.connect(), then writes >> will >> successfully go though. >> >> I'm using MINA 1.1.5 and JRE 1.6. >> >> Source code that demostrate the problem is attached. >> http://www.nabble.com/file/p14370126/BroadcastSender.java >> BroadcastSender.java >> -- >> View this message in context: >> http://www.nabble.com/WriteFuture.join%28%29-hangs-when-called-in-IoHandler.sessionOpened%28%29-in-Datagram-transport.-tp14370126s16868p14370126.html >> Sent from the Apache MINA Support Forum mailing list archive at >> Nabble.com. >> >> > > > > -- > what we call human nature is actually human habit > -- > http://gleamynode.net/ > -- > PGP Key ID: 0x0255ECA6 > > -- View this message in context: http://www.nabble.com/WriteFuture.join%28%29-hangs-when-called-in-IoHandler.sessionOpened%28%29-in-Datagram-transport.-tp14370126s16868p14430072.html Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.
