[ 
https://issues.apache.org/jira/browse/DIRMINA-632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12649948#action_12649948
 ] 

Emmanuel Lecharny commented on DIRMINA-632:
-------------------------------------------

I agree there is a big issue in the way the WriteFuture is handled. The problem 
is that the Future update is done when you exit from the chain correctly, ie 
without an exception.

Le'ts try to see if we can find a more elegant solution, but I'm afraid that 
would be difficult without a complete redesign of the chain handling...

> WriteFuture.awaitUninterruptibly() or .join() hangs if write() throws 
> Exceptions
> --------------------------------------------------------------------------------
>
>                 Key: DIRMINA-632
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-632
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.10, 1.1.7, 2.0.0-M3
>            Reporter: Barrie Treloar
>         Attachments: mina-1.1-handle-write-exceptions-with-test.txt, 
> mina-2.0-handle-write-exceptions-test.txt, 
> mina-2.0-handle-write-exceptions.txt, 
> mina-2.0-memory_monitor-withExceptionNotifier.txt, mina-2.0-memory_monitor.txt
>
>
> This is best shown with UDP since TCP will cause a close session to occur.
> If channel.write() throws an exception, e.g. the host becomes unreachable 
> because of network connection is removed, then 
> WriteFuture.awaitUninterruptibly() will hang - as it will never have 
> setWritten(false) or setException() called.
> I have modified the MemoryMonitor example to show this happening.
> You must manually pull your network cable (or disable your Network Adapter) 
> while the client is running to see this happen.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to