Poor handling of CancelledKeyException with custom IOReactorExceptionHandler
-----------------------------------------------------------------------------
Key: HTTPCORE-165
URL: https://issues.apache.org/jira/browse/HTTPCORE-165
Project: HttpComponents HttpCore
Issue Type: Bug
Components: HttpCore NIO
Affects Versions: 4.0-beta2
Reporter: Patrick Moore
IOReactorExceptionHandler documentation for handle(RuntimeException ex) is
misleading. Specifically the documentation says :
@return <code>true</code> if it is safe to ignore the exception
and continue execution of the I/O reactor; <code>false</code> if the
I/O reactor must throw [EMAIL PROTECTED] RuntimeException} and terminate
However, a CancelledKeyException should be rethrown because the BaseIOReactor
and the AbstractIOReactor expect and handle CancelledKeyException correctly.
BUT -- NOT always.
Looking at the call stack for where
IOReactorExceptionHandler.handle(RuntimeException) is called reveals some
problems.
If a custom IOReactorExceptionHandler was to return false (indicating that the
CanceledKeyException was to be rethrown or to do the rethrow itself) WOULD
result in the IOReactor being shutdown:
BaseIOReactor.sessionClosed(IOSession)
BaseIOReactor.timeoutCheck(SelectionKey, long)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]