Evgeny Pasynkov created SSHD-1261: ------------------------------------- Summary: Sometimes async write listener is not called Key: SSHD-1261 URL: https://issues.apache.org/jira/browse/SSHD-1261 Project: MINA SSHD Issue Type: Bug Affects Versions: 2.8.0 Reporter: Evgeny Pasynkov
Hello, I have discovered the case when the async write listener is not called. Imagine the case: The `ChannelAsyncOutputStream::doWriteIfPossible` method discover that window size is too small (lines 160-167). It setup new future and exit the doWriteIfPossible method, relying on `onWindowExpanded` will be called shortly. But if the channel is disconnected, the method will never be invoked, thus future won't be completed. I suggest adding the following override to ChannelAsyncOutputStream class: {code:java} @Override protected void doCloseImmediately() { abortCurrentWrite(); super.doCloseImmediately(); } protected synchronized void abortCurrentWrite() { IoWriteFutureImpl future = pendingWrite.get(); if (future != null) { future.setValue(new ClosedChannelException()); } } {code} -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org For additional commands, e-mail: dev-h...@mina.apache.org