You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Goldstein Lyor (JIRA)" <ji...@apache.org> on 2015/07/07 10:13:05 UTC

[jira] [Resolved] (SSHD-530) Separate buffer decoding from processing in SFTP subsytem implementation

     [ https://issues.apache.org/jira/browse/SSHD-530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Goldstein Lyor resolved SSHD-530.
---------------------------------
    Resolution: Fixed

This also helped detect (and fix) a subtle bug. The previous code looked like this:
{code:java}
protected void doSomething(int id, Buffer buffer) throws IOException {
    try {
       ...calculate the response...
       send(...response...);
    } catch(IOException e) {
        sendStatus(id, e);
    }
}
{code}
The problem was that _send_ might throw an _IOException_ as well, in which case _sendStatus_ of the _catch_ clause is invoked. Usually it will most likely fail as well with an _IOException_, but not necessarily. The new code has the following template:
{code:java}
protected void doSomething(int id, Buffer buffer) throws IOException {
    try {
       ...calculate the response...
    } catch(IOException | RuntimeException e) {
        sendStatus(id, e);
        return;
    }

    send(....response...)
}
{code}
This way, any _IOException/RuntimeException_ occurring during the response calculation phase are sent as a status, whereas an _IOException_ occurring during the response sending is propagated (as it should be)

> Separate buffer decoding from processing in SFTP subsytem implementation
> ------------------------------------------------------------------------
>
>                 Key: SSHD-530
>                 URL: https://issues.apache.org/jira/browse/SSHD-530
>             Project: MINA SSHD
>          Issue Type: Improvement
>    Affects Versions: 1.0.0
>            Reporter: Goldstein Lyor
>            Assignee: Goldstein Lyor
>             Fix For: 1.0.0
>
>
> Facilitate easier extension of the implementation as well as first step towards implementing an _SftpEventListener_



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)