Chris Janicki created DIRMINA-941:
-------------------------------------
Summary: DefaultIoFilterChain (or any other class) should not
catch Throwable without re-throwing
Key: DIRMINA-941
URL: https://issues.apache.org/jira/browse/DIRMINA-941
Project: MINA
Issue Type: Improvement
Components: Core
Affects Versions: 2.0.7, 2.0.5
Environment: N/A
Reporter: Chris Janicki
I spent several hours tracking down a bug that was ultimately caused by an old
slf4j*-api.jar in my encompassing project's classpath. The critical error
message ("... method not found... isTraceEnabled()...") was silenced by the
"catch Throwable" behavior in the
org.apache.mina.core.filterchain.DefaultIoFilterChain class. Since the problem
was related to the logging classes, the error wasn't logged, and unfortunately,
the runtime exception was not allowed to propagate to the console... Instead it
was consumed in DefaultIoFilterChain. This left absolutely no clues for
debugging why the SSH server just stopped in the middle of key negotiation.
The only evidence of the problem was that the SSHD server I was embedding just
stopped in the middle of the key exchange. In order to finally find the
problem, I had to track down the last known working part of code in the
ssh-core package, and edit your source code to catch and print Throwables.
While I appreciate that this was possible because of your open source, it was
beyond the normal programmer's expectation for embedding a library. In my
google searches for the last printed SSH client debug state message ("debug1:
SSH2_MSG_KEXINIT sent") , I found several people over the last few years who
have struggled for answers at the same point in the code when using Apache's
Mina/sshd. There's no indication that many of them succeeded in tracking down
the problem. (I'll go back and leave some breadcrumbs for future travelers,
where I have logins.)
My overall point is that it's not nice to catch Throwables.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira