[ 
https://issues.apache.org/jira/browse/SSHD-1058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17179421#comment-17179421
 ] 

Markus Spann commented on SSHD-1058:
------------------------------------

Here's how exceptions were dealt with up to and including version 2.4.0 in the 
discussed scenario:

 
{code:java}
... // lines 200 ff.
} catch (IOException e) {
    if (this.log.isDebugEnabled()) {
        this.log.debug("flush({}) failed ({}) to wait for space of len={}: {}", 
new Object[] { this, e.getClass().getSimpleName(), Long.valueOf(total), 
e.getMessage() });
    }
    throw e;
}
{code}
{quote}We apply a consistent policy of logging exception [...]
{quote}
since when?

> ChannelOutputStream#flush should not log at error level
> -------------------------------------------------------
>
>                 Key: SSHD-1058
>                 URL: https://issues.apache.org/jira/browse/SSHD-1058
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 2.5.0, 2.5.1
>         Environment: Linux, Java 11
>            Reporter: Markus Spann
>            Assignee: Lyor Goldstein
>            Priority: Minor
>
> When calling flush on ChannelOutputStream, Window.waitForSpace may throw a 
> WindowClosedException. This exception is always logged at error level, then 
> rethrown. If Debug is enabled on the logger, the error log is issued twice 
> (second time with stacktrace).
> During deinitialization it is common practice to call flush on output 
> streams. Due to the asynchronous nature of the code in this library, the call 
> may fail. The caller should decide how to deal with the exception and log at 
> error level if needed.
> The implementation should not log at error level regardless.
> I would suggest INFO level instead (if logging at all).
>  
> {code:java}
> // lines 202 ff.
> if (log.isDebugEnabled()) {
>     log.info("flush({}) failed ({}) to wait for space of len={}: {}: ", this, 
> e.getClass().getSimpleName(), total, e.getMessage(), e); // with stacktrace
> } else {
>     log.info("flush({}) failed ({}) to wait for space of len={}: {}",
>  this, e.getClass().getSimpleName(), total, e.getMessage());
> }
> throw e;
> {code}
> Thanks,
> Markus
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to