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)