[
https://issues.apache.org/jira/browse/SSHD-1278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17567339#comment-17567339
]
dgü commented on SSHD-1278:
---------------------------
Hello!
If I'm not wrong I could find a workaround if _ConnectFuture#cancel()_ is
synchronous.
{code:java}
ConnectFuture connectFuture = client.connect(...uri...);
try
{
connectFuture.verify(CONNECT_TIMEOUT);
}
catch (IOException e) {
//Assuming connectFuture.cancel() is sysnchronous. This will cancel
connection attempt only if connection is not established.
connectFuture.cancel();
//If client connection is established, ignore the exception. Otherwise
throw the exception.
if (!connectFuture.isConnected()) {
throw e;
}
}
{code}
If this workaround is correct, there will be no running connection attempt in
background after timeout.
> How to release client connection resources after connection timeout occurs ?
> ----------------------------------------------------------------------------
>
> Key: SSHD-1278
> URL: https://issues.apache.org/jira/browse/SSHD-1278
> Project: MINA SSHD
> Issue Type: Question
> Affects Versions: 2.8.0
> Environment: Java SE 8, NetBeans IDE 8.2
> Reporter: dgü
> Assignee: Lyor Goldstein
> Priority: Major
>
> Hello!
> I want to release client connection resources after connection timeout occurs
> ?
> This is the code:
> {code:java}
> ConnectFuture connectFuture = sshClient.connect(uri.toString());
> try {
> //connectFuture.isConnected() returns false
> connectFuture.verify(timeout);
> } catch (IOException e) {
> //connectFuture.isConnected() returns true
> connectFuture.cancel();
> //connectFuture.isCanceled() returns false
> //connectFuture.isConnected() returns true
> throw e;
> }
> {code}
> I guess there is a race condition between client connection and
> {{ConnectFuture#isConnected()}}.
> For example, this code may be wrong:
> {code:java}
> if (!connectFuture.isConnected()) {
> //connectFuture.isConnected() may return true
> }
> {code}
> In my case, session is connected after timeout.
> How can I be sure that client is still not connected and release its
> resources after connection timeout occurs ?
> Thanks in advance!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]