You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by lg...@apache.org on 2017/10/11 17:34:22 UTC
[3/3] mina-sshd git commit: Added identifier value to Future(s) for
improved logging
Added identifier value to Future(s) for improved logging
Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/693fa5d9
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/693fa5d9
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/693fa5d9
Branch: refs/heads/master
Commit: 693fa5d90f54676de6655954046a8a4f5d09728a
Parents: 55ca881
Author: Lyor Goldstein <ly...@gmail.com>
Authored: Wed Oct 11 20:34:21 2017 +0300
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Wed Oct 11 20:35:16 2017 +0300
----------------------------------------------------------------------
.../throttle/ThrottlingPacketWriterTest.java | 2 +-
.../agent/local/ChannelAgentForwarding.java | 2 +-
.../sshd/agent/unix/ChannelAgentForwarding.java | 2 +-
.../java/org/apache/sshd/client/SshClient.java | 29 ++++-----
.../client/channel/AbstractClientChannel.java | 4 +-
.../sshd/client/channel/ChannelDirectTcpip.java | 2 +-
.../sshd/client/future/DefaultAuthFuture.java | 4 +-
.../client/future/DefaultConnectFuture.java | 4 +-
.../sshd/client/future/DefaultOpenFuture.java | 4 +-
.../client/session/AbstractClientSession.java | 2 +-
.../client/session/ClientConnectionService.java | 4 +-
.../sshd/client/session/ClientSessionImpl.java | 2 +-
.../client/session/ClientUserAuthService.java | 2 +-
.../subsystem/sftp/DefaultSftpClient.java | 2 +-
.../sshd/common/channel/AbstractChannel.java | 9 +--
.../common/channel/BufferedIoOutputStream.java | 66 +++++++++++---------
.../common/channel/ChannelAsyncInputStream.java | 8 ++-
.../channel/ChannelAsyncOutputStream.java | 7 ++-
.../sshd/common/channel/IoWriteFutureImpl.java | 4 +-
.../common/forward/DefaultForwardingFilter.java | 2 +-
.../sshd/common/forward/TcpipClientChannel.java | 4 +-
.../sshd/common/future/AbstractSshFuture.java | 19 +++++-
.../sshd/common/future/DefaultCloseFuture.java | 5 +-
.../common/future/DefaultKeyExchangeFuture.java | 4 +-
.../sshd/common/future/DefaultSshFuture.java | 7 ++-
.../future/DefaultVerifiableSshFuture.java | 4 +-
.../sshd/common/future/WaitableFuture.java | 4 ++
.../sshd/common/io/AbstractIoWriteFuture.java | 4 +-
.../sshd/common/io/mina/MinaConnector.java | 2 +-
.../apache/sshd/common/io/mina/MinaSession.java | 12 ++--
.../sshd/common/io/nio2/Nio2Connector.java | 6 +-
.../io/nio2/Nio2DefaultIoWriteFuture.java | 4 +-
.../apache/sshd/common/io/nio2/Nio2Service.java | 2 +-
.../apache/sshd/common/io/nio2/Nio2Session.java | 5 +-
.../helpers/AbstractConnectionService.java | 4 +-
.../common/session/helpers/AbstractSession.java | 9 +--
.../session/helpers/PendingWriteFuture.java | 4 +-
.../util/closeable/AbstractCloseable.java | 3 +-
.../sshd/common/util/closeable/Builder.java | 26 ++++----
.../common/util/closeable/FuturesCloseable.java | 4 +-
.../util/closeable/ParallelCloseable.java | 4 +-
.../util/closeable/SequentialCloseable.java | 4 +-
.../common/util/closeable/SimpleCloseable.java | 4 +-
.../java/org/apache/sshd/server/SshServer.java | 27 ++++----
.../server/channel/AbstractServerChannel.java | 2 +-
.../sshd/server/channel/ChannelSession.java | 4 +-
.../sshd/server/forward/TcpipServerChannel.java | 4 +-
.../sshd/server/x11/ChannelForwardedX11.java | 2 +-
.../common/future/DefaultSshFutureTest.java | 32 +++++-----
.../session/helpers/AbstractSessionTest.java | 4 +-
.../util/closeable/CloseableUtilsTest.java | 7 ++-
.../deprecated/ClientUserAuthServiceOld.java | 4 +-
.../sshd/util/test/AsyncEchoShellFactory.java | 4 +-
.../org/apache/sshd/util/test/BogusChannel.java | 2 +-
54 files changed, 224 insertions(+), 173 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-contrib/src/test/java/org/apache/sshd/common/channel/throttle/ThrottlingPacketWriterTest.java
----------------------------------------------------------------------
diff --git a/sshd-contrib/src/test/java/org/apache/sshd/common/channel/throttle/ThrottlingPacketWriterTest.java b/sshd-contrib/src/test/java/org/apache/sshd/common/channel/throttle/ThrottlingPacketWriterTest.java
index 94958c8..056ff65 100644
--- a/sshd-contrib/src/test/java/org/apache/sshd/common/channel/throttle/ThrottlingPacketWriterTest.java
+++ b/sshd-contrib/src/test/java/org/apache/sshd/common/channel/throttle/ThrottlingPacketWriterTest.java
@@ -123,7 +123,7 @@ public class ThrottlingPacketWriterTest extends BaseTestSupport {
@Override
public IoWriteFuture writePacket(Buffer buffer) throws IOException {
- return new IoWriteFutureImpl(buffer);
+ return new IoWriteFutureImpl(MockPacketWriter.class.getSimpleName(), buffer);
}
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
index b7becde..a1868c7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/ChannelAgentForwarding.java
@@ -52,7 +52,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
@Override
protected OpenFuture doInit(Buffer buffer) {
- OpenFuture f = new DefaultOpenFuture(this);
+ OpenFuture f = new DefaultOpenFuture(this, this);
String changeEvent = "auth-agent";
try {
out = new ChannelOutputStream(this, getRemoteWindow(), log, SshConstants.SSH_MSG_CHANNEL_DATA, true);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
index 969f330..395bd37 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/unix/ChannelAgentForwarding.java
@@ -71,7 +71,7 @@ public class ChannelAgentForwarding extends AbstractServerChannel {
@Override
protected OpenFuture doInit(Buffer buffer) {
- OpenFuture f = new DefaultOpenFuture(this);
+ OpenFuture f = new DefaultOpenFuture(this, this);
try {
out = new ChannelOutputStream(this, getRemoteWindow(), log, SshConstants.SSH_MSG_CHANNEL_DATA, true);
authSocket = this.getString(SshAgent.SSH_AUTHSOCKET_ENV_NAME);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
index ce4b192..0e8979e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/SshClient.java
@@ -456,21 +456,22 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
@Override
protected Closeable getInnerCloseable() {
+ Object closeId = toString();
return builder()
- .run(() -> removeSessionTimeout(sessionFactory))
- .sequential(connector, ioServiceFactory)
- .run(() -> {
- connector = null;
- ioServiceFactory = null;
- if (shutdownExecutor && (executor != null) && (!executor.isShutdown())) {
- try {
- executor.shutdownNow();
- } finally {
- executor = null;
- }
+ .run(closeId, () -> removeSessionTimeout(sessionFactory))
+ .sequential(connector, ioServiceFactory)
+ .run(closeId, () -> {
+ connector = null;
+ ioServiceFactory = null;
+ if (shutdownExecutor && (executor != null) && (!executor.isShutdown())) {
+ try {
+ executor.shutdownNow();
+ } finally {
+ executor = null;
}
- })
- .build();
+ }
+ })
+ .build();
}
@Override
@@ -584,7 +585,7 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
throw new IllegalStateException("SshClient not started. Please call start() method before connecting to a server");
}
- ConnectFuture connectFuture = new DefaultConnectFuture(null);
+ ConnectFuture connectFuture = new DefaultConnectFuture(username + "@" + address, null);
SshFutureListener<IoConnectFuture> listener = createConnectCompletionListener(connectFuture, username, address, identities, useDefaultIdentities);
connector.connect(address).addListener(listener);
return connectFuture;
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
index 4159a53..4b61734 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/AbstractClientChannel.java
@@ -175,7 +175,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
protected Closeable getInnerCloseable() {
return builder()
.when(openFuture)
- .run(() -> {
+ .run(toString(), () -> {
// If the channel has not been opened yet,
// skip the SSH_MSG_CHANNEL_CLOSE exchange
if (openFuture == null) {
@@ -297,7 +297,7 @@ public abstract class AbstractClientChannel extends AbstractChannel implements C
throw new SshException("Session has been closed");
}
- openFuture = new DefaultOpenFuture(lock);
+ openFuture = new DefaultOpenFuture(this.toString(), lock);
if (log.isDebugEnabled()) {
log.debug("open({}) Send SSH_MSG_CHANNEL_OPEN - type={}", this, type);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
index 5658e95..4ecfbf4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelDirectTcpip.java
@@ -70,7 +70,7 @@ public class ChannelDirectTcpip extends AbstractClientChannel {
throw new SshException("Session has been closed");
}
- openFuture = new DefaultOpenFuture(lock);
+ openFuture = new DefaultOpenFuture(remote, lock);
if (log.isDebugEnabled()) {
log.debug("open({}) SSH_MSG_CHANNEL_OPEN", this);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
index da10342..4e5c406 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultAuthFuture.java
@@ -31,8 +31,8 @@ import org.apache.sshd.common.future.DefaultVerifiableSshFuture;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class DefaultAuthFuture extends DefaultVerifiableSshFuture<AuthFuture> implements AuthFuture {
- public DefaultAuthFuture(Object lock) {
- super(lock);
+ public DefaultAuthFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
index e028690..e746954 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultConnectFuture.java
@@ -32,8 +32,8 @@ import org.apache.sshd.common.io.IoSession;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class DefaultConnectFuture extends DefaultVerifiableSshFuture<ConnectFuture> implements ConnectFuture {
- public DefaultConnectFuture(Object lock) {
- super(lock);
+ public DefaultConnectFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
index c2ee400..aa91c92 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/future/DefaultOpenFuture.java
@@ -30,8 +30,8 @@ import org.apache.sshd.common.future.DefaultVerifiableSshFuture;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class DefaultOpenFuture extends DefaultVerifiableSshFuture<OpenFuture> implements OpenFuture {
- public DefaultOpenFuture(Object lock) {
- super(lock);
+ public DefaultOpenFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java b/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
index 4e9e6c9..b67310d 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/AbstractClientSession.java
@@ -538,7 +538,7 @@ public abstract class AbstractClientSession extends AbstractSession implements C
}
if (kexState.compareAndSet(KexState.DONE, KexState.INIT)) {
- DefaultKeyExchangeFuture kexFuture = new DefaultKeyExchangeFuture(null);
+ DefaultKeyExchangeFuture kexFuture = new DefaultKeyExchangeFuture(toString(), null);
DefaultKeyExchangeFuture prev = kexFutureHolder.getAndSet(kexFuture);
if (prev != null) {
synchronized (prev) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
index 145328e..869f0d1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientConnectionService.java
@@ -88,8 +88,8 @@ public class ClientConnectionService extends AbstractConnectionService<AbstractC
log.debug("Error (" + e.getClass().getSimpleName() + ") sending keepalive message=" + request + ": " + e.getMessage());
}
- final Throwable t = e;
- return new AbstractIoWriteFuture(null) {
+ Throwable t = e;
+ return new AbstractIoWriteFuture(request, null) {
{
setValue(t);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
index 4ae713f..ba48841 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientSessionImpl.java
@@ -83,7 +83,7 @@ public class ClientSessionImpl extends AbstractClientSession {
nextServiceFactory = null;
}
- authFuture = new DefaultAuthFuture(lock);
+ authFuture = new DefaultAuthFuture(ioSession.getRemoteAddress(), lock);
authFuture.setAuthed(false);
signalSessionCreated(ioSession);
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
index dbe4202..5c8339e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/session/ClientUserAuthService.java
@@ -121,7 +121,7 @@ public class ClientUserAuthService
ClientSession session = getClientSession();
// check if any previous future in use
- AuthFuture authFuture = new DefaultAuthFuture(clientSession.getLock());
+ AuthFuture authFuture = new DefaultAuthFuture(service, clientSession.getLock());
AuthFuture currentFuture = authFutureHolder.getAndSet(authFuture);
if (currentFuture != null) {
if (currentFuture.isDone()) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
index 8a72a3f..b72502c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/subsystem/sftp/DefaultSftpClient.java
@@ -125,7 +125,7 @@ public class DefaultSftpClient extends AbstractSftpClient {
}
@Override
- public Map<String, byte[]> getServerExtensions() {
+ public NavigableMap<String, byte[]> getServerExtensions() {
return exposedExtensions;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
index e1eebef..bb88256 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/AbstractChannel.java
@@ -84,7 +84,7 @@ public abstract class AbstractChannel
protected final AtomicBoolean eofReceived = new AtomicBoolean(false);
protected final AtomicBoolean eofSent = new AtomicBoolean(false);
protected AtomicReference<GracefulState> gracefulState = new AtomicReference<>(GracefulState.Opened);
- protected final DefaultCloseFuture gracefulFuture = new DefaultCloseFuture(lock);
+ protected final DefaultCloseFuture gracefulFuture;
/**
* Channel events listener
*/
@@ -124,6 +124,7 @@ public abstract class AbstractChannel
protected AbstractChannel(String discriminator, boolean client, Collection<? extends RequestHandler<Channel>> handlers) {
super(discriminator);
+ gracefulFuture = new DefaultCloseFuture(discriminator, lock);
localWindow = new Window(this, null, client, true);
remoteWindow = new Window(this, null, client, false);
channelListenerProxy = EventListenerUtils.proxyWrapper(ChannelListener.class, getClass().getClassLoader(), channelListeners);
@@ -352,7 +353,7 @@ public abstract class AbstractChannel
}
if (RequestHandler.Result.Replied.equals(result) || (!wantReply)) {
- return new AbstractIoWriteFuture(null) {
+ return new AbstractIoWriteFuture(req, null) {
{
setValue(Boolean.TRUE);
}
@@ -788,14 +789,14 @@ public abstract class AbstractChannel
@Override
public IoWriteFuture writePacket(Buffer buffer) throws IOException {
+ Session s = getSession();
if (!isClosing()) {
- Session s = getSession();
return s.writePacket(buffer);
} else {
if (log.isDebugEnabled()) {
log.debug("writePacket({}) Discarding output packet because channel is being closed", this);
}
- return new AbstractIoWriteFuture(null) {
+ return new AbstractIoWriteFuture(s.toString(), null) {
{
setValue(new EOFException("Channel is being closed"));
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/channel/BufferedIoOutputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/BufferedIoOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/BufferedIoOutputStream.java
index 6737a82..1cb75aa 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/BufferedIoOutputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/BufferedIoOutputStream.java
@@ -38,9 +38,15 @@ public class BufferedIoOutputStream extends AbstractInnerCloseable implements Io
protected final IoOutputStream out;
protected final Queue<IoWriteFutureImpl> writes = new ConcurrentLinkedQueue<>();
protected final AtomicReference<IoWriteFutureImpl> currentWrite = new AtomicReference<>();
+ protected final Object id;
- public BufferedIoOutputStream(IoOutputStream out) {
+ public BufferedIoOutputStream(Object id, IoOutputStream out) {
this.out = out;
+ this.id = id;
+ }
+
+ public Object getId() {
+ return id;
}
@Override
@@ -49,46 +55,50 @@ public class BufferedIoOutputStream extends AbstractInnerCloseable implements Io
throw new EOFException("Closed");
}
- IoWriteFutureImpl future = new IoWriteFutureImpl(buffer);
+ IoWriteFutureImpl future = new IoWriteFutureImpl(getId(), buffer);
writes.add(future);
startWriting();
return future;
}
protected void startWriting() throws IOException {
- final IoWriteFutureImpl future = writes.peek();
- if (future != null) {
- if (currentWrite.compareAndSet(null, future)) {
- out.writePacket(future.getBuffer()).addListener(new SshFutureListener<IoWriteFuture>() {
- @Override
- public void operationComplete(IoWriteFuture f) {
- if (f.isWritten()) {
- future.setValue(Boolean.TRUE);
- } else {
- future.setValue(f.getException());
- }
- finishWrite();
- }
+ IoWriteFutureImpl future = writes.peek();
+ if (future == null) {
+ return;
+ }
- @SuppressWarnings("synthetic-access")
- private void finishWrite() {
- writes.remove(future);
- currentWrite.compareAndSet(future, null);
- try {
- startWriting();
- } catch (IOException e) {
- log.error("finishWrite({}) failed ({}) re-start writing", out, e.getClass().getSimpleName());
- }
- }
- });
- }
+ if (!currentWrite.compareAndSet(null, future)) {
+ return;
}
+
+ out.writePacket(future.getBuffer()).addListener(new SshFutureListener<IoWriteFuture>() {
+ @Override
+ public void operationComplete(IoWriteFuture f) {
+ if (f.isWritten()) {
+ future.setValue(Boolean.TRUE);
+ } else {
+ future.setValue(f.getException());
+ }
+ finishWrite();
+ }
+
+ @SuppressWarnings("synthetic-access")
+ private void finishWrite() {
+ writes.remove(future);
+ currentWrite.compareAndSet(future, null);
+ try {
+ startWriting();
+ } catch (IOException e) {
+ log.error("finishWrite({}) failed ({}) re-start writing", out, e.getClass().getSimpleName());
+ }
+ }
+ });
}
@Override
protected Closeable getInnerCloseable() {
return builder()
- .when(writes)
+ .when(getId(), writes)
.close(out)
.build();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
index 0be24fe..be34737 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncInputStream.java
@@ -40,10 +40,12 @@ import org.apache.sshd.common.util.closeable.AbstractCloseable;
public class ChannelAsyncInputStream extends AbstractCloseable implements IoInputStream, ChannelHolder {
private final Channel channelInstance;
private final Buffer buffer = new ByteArrayBuffer();
+ private final Object readFutureId;
private IoReadFutureImpl pending;
public ChannelAsyncInputStream(Channel channel) {
this.channelInstance = Objects.requireNonNull(channel, "No channel");
+ this.readFutureId = toString();
}
@Override
@@ -60,7 +62,7 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
@Override
public IoReadFuture read(Buffer buf) {
- IoReadFutureImpl future = new IoReadFutureImpl(buf);
+ IoReadFutureImpl future = new IoReadFutureImpl(readFutureId, buf);
if (isClosing()) {
future.setValue(new IOException("Closed"));
} else {
@@ -140,8 +142,8 @@ public class ChannelAsyncInputStream extends AbstractCloseable implements IoInpu
public static class IoReadFutureImpl extends DefaultVerifiableSshFuture<IoReadFuture> implements IoReadFuture {
private final Buffer buffer;
- public IoReadFutureImpl(Buffer buffer) {
- super(null);
+ public IoReadFutureImpl(Object id, Buffer buffer) {
+ super(id, null);
this.buffer = buffer;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncOutputStream.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncOutputStream.java
index e525355..b0e715e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncOutputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelAsyncOutputStream.java
@@ -39,11 +39,13 @@ public class ChannelAsyncOutputStream extends AbstractCloseable implements IoOut
private final PacketWriter packetWriter;
private final byte cmd;
private final AtomicReference<IoWriteFutureImpl> pendingWrite = new AtomicReference<>();
+ private final Object packetWriteId;
public ChannelAsyncOutputStream(Channel channel, byte cmd) {
this.channelInstance = Objects.requireNonNull(channel, "No channel");
this.packetWriter = channelInstance.resolveChannelStreamPacketWriter(channel, cmd);
this.cmd = cmd;
+ this.packetWriteId = channel.toString() + "[" + SshConstants.getCommandMessageName(cmd) + "]";
}
@Override
@@ -61,7 +63,7 @@ public class ChannelAsyncOutputStream extends AbstractCloseable implements IoOut
throw new EOFException("Closed");
}
- IoWriteFutureImpl future = new IoWriteFutureImpl(buffer);
+ IoWriteFutureImpl future = new IoWriteFutureImpl(packetWriteId, buffer);
if (!pendingWrite.compareAndSet(null, future)) {
throw new WritePendingException("No write pending future");
}
@@ -75,7 +77,8 @@ public class ChannelAsyncOutputStream extends AbstractCloseable implements IoOut
try {
packetWriter.close();
} catch (IOException e) {
- log.error("preClose({}) Failed ({}) to pre-close packet writer: {}", this, e.getClass().getSimpleName(), e.getMessage());
+ log.error("preClose({}) Failed ({}) to pre-close packet writer: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java
index 1822c92..5c5b41c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/IoWriteFutureImpl.java
@@ -30,8 +30,8 @@ import org.apache.sshd.common.util.buffer.Buffer;
public class IoWriteFutureImpl extends AbstractIoWriteFuture {
private final Buffer buffer;
- public IoWriteFutureImpl(Buffer buffer) {
- super(null);
+ public IoWriteFutureImpl(Object id, Buffer buffer) {
+ super(id, null);
this.buffer = Objects.requireNonNull(buffer, "No buffer provided");
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
index b2403dd..1017f64 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/DefaultForwardingFilter.java
@@ -858,7 +858,7 @@ public class DefaultForwardingFilter
@Override
protected synchronized Closeable getInnerCloseable() {
- return builder().parallel(dynamicLocal.values()).close(acceptor).build();
+ return builder().parallel(toString(), dynamicLocal.values()).close(acceptor).build();
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
index 673114e..f55dca1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/forward/TcpipClientChannel.java
@@ -83,10 +83,12 @@ public class TcpipClientChannel extends AbstractClientChannel {
default:
throw new SshException("Unknown client channel type: " + typeEnum);
}
+
if (closeFuture.isClosed()) {
throw new SshException("Session has been closed");
}
- openFuture = new DefaultOpenFuture(lock);
+
+ openFuture = new DefaultOpenFuture(src, lock);
if (log.isDebugEnabled()) {
log.debug("open({}) send SSH_MSG_CHANNEL_OPEN", this);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/AbstractSshFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/AbstractSshFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/AbstractSshFuture.java
index f10f0f5..b1217c4 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/AbstractSshFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/AbstractSshFuture.java
@@ -37,8 +37,18 @@ public abstract class AbstractSshFuture<T extends SshFuture> extends AbstractLog
*/
protected static final Object CANCELED = new Object();
- protected AbstractSshFuture() {
- super();
+ private final Object id;
+
+ /**
+ * @param id Some identifier useful as {@link #toString()} value
+ */
+ protected AbstractSshFuture(Object id) {
+ this.id = id;
+ }
+
+ @Override
+ public Object getId() {
+ return id;
}
@Override
@@ -154,4 +164,9 @@ public abstract class AbstractSshFuture<T extends SshFuture> extends AbstractLog
protected T asT() {
return (T) this;
}
+
+ @Override
+ public String toString() {
+ return getClass().getSimpleName() + "[id=" + getId() + "]";
+ }
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultCloseFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultCloseFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultCloseFuture.java
index 3de2d01..4c34a06 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultCloseFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultCloseFuture.java
@@ -28,11 +28,12 @@ public class DefaultCloseFuture extends DefaultSshFuture<CloseFuture> implements
/**
* Create a new instance
*
+ * @param id Some identifier useful as {@link #toString()} value
* @param lock A synchronization object for locking access - if {@code null}
* then synchronization occurs on {@code this} instance
*/
- public DefaultCloseFuture(Object lock) {
- super(lock);
+ public DefaultCloseFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultKeyExchangeFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultKeyExchangeFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultKeyExchangeFuture.java
index 68029c5..880bb2a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultKeyExchangeFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultKeyExchangeFuture.java
@@ -27,8 +27,8 @@ import org.apache.sshd.common.SshException;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class DefaultKeyExchangeFuture extends DefaultVerifiableSshFuture<KeyExchangeFuture> implements KeyExchangeFuture {
- public DefaultKeyExchangeFuture(Object lock) {
- super(lock);
+ public DefaultKeyExchangeFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
index db380c2..d05ce3b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultSshFuture.java
@@ -42,10 +42,13 @@ public class DefaultSshFuture<T extends SshFuture> extends AbstractSshFuture<T>
/**
* Creates a new instance.
*
+ * @param id Some identifier useful as {@link #toString()} value
* @param lock A synchronization object for locking access - if {@code null}
* then synchronization occurs on {@code this} instance
*/
- public DefaultSshFuture(Object lock) {
+ public DefaultSshFuture(Object id, Object lock) {
+ super(id);
+
this.lock = (lock != null) ? lock : this;
}
@@ -224,6 +227,6 @@ public class DefaultSshFuture<T extends SshFuture> extends AbstractSshFuture<T>
@Override
public String toString() {
- return getClass().getSimpleName() + "[value=" + result + "]";
+ return super.toString() + "[value=" + result + "]";
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultVerifiableSshFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultVerifiableSshFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultVerifiableSshFuture.java
index 64b8094..1b02fed 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultVerifiableSshFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/DefaultVerifiableSshFuture.java
@@ -24,7 +24,7 @@ package org.apache.sshd.common.future;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public abstract class DefaultVerifiableSshFuture<T extends SshFuture> extends DefaultSshFuture<T> implements VerifiableFuture<T> {
- protected DefaultVerifiableSshFuture(Object lock) {
- super(lock);
+ protected DefaultVerifiableSshFuture(Object id, Object lock) {
+ super(id, lock);
}
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/future/WaitableFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/future/WaitableFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/future/WaitableFuture.java
index ba84820..aff4adc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/future/WaitableFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/future/WaitableFuture.java
@@ -32,6 +32,10 @@ import java.util.concurrent.TimeUnit;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public interface WaitableFuture {
+ /**
+ * @return Some identifier useful as {@link #toString()} value
+ */
+ Object getId();
/**
* Wait {@link Long#MAX_VALUE} msec. for the asynchronous operation to complete.
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoWriteFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoWriteFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoWriteFuture.java
index 755d5a5..947b678 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoWriteFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/AbstractIoWriteFuture.java
@@ -28,8 +28,8 @@ import org.apache.sshd.common.future.DefaultVerifiableSshFuture;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public abstract class AbstractIoWriteFuture extends DefaultVerifiableSshFuture<IoWriteFuture> implements IoWriteFuture {
- protected AbstractIoWriteFuture(Object lock) {
- super(lock);
+ protected AbstractIoWriteFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
index 4b48787..e7da612 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
@@ -77,7 +77,7 @@ public class MinaConnector extends MinaService implements org.apache.sshd.common
public IoConnectFuture connect(SocketAddress address) {
class Future extends DefaultSshFuture<IoConnectFuture> implements IoConnectFuture {
Future(Object lock) {
- super(lock);
+ super(address, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
index 02dd74c..81d5b18 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/mina/MinaSession.java
@@ -38,15 +38,17 @@ import org.apache.sshd.common.util.closeable.AbstractInnerCloseable;
import org.apache.sshd.common.util.closeable.IoBaseCloseable;
/**
+ * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class MinaSession extends AbstractInnerCloseable implements IoSession {
-
private final MinaService service;
private final org.apache.mina.core.session.IoSession session;
+ private final Object sessionWriteId;
public MinaSession(MinaService service, org.apache.mina.core.session.IoSession session) {
this.service = service;
this.session = session;
+ this.sessionWriteId = Objects.toString(session);
}
public org.apache.mina.core.session.IoSession getSession() {
@@ -87,7 +89,7 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
protected Closeable getInnerCloseable() {
return new IoBaseCloseable() {
@SuppressWarnings("synthetic-access")
- private final DefaultCloseFuture future = new DefaultCloseFuture(lock);
+ private final DefaultCloseFuture future = new DefaultCloseFuture(MinaSession.this.toString(), lock);
@SuppressWarnings("synthetic-access")
@Override
@@ -138,7 +140,7 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
// NOTE !!! data buffer may NOT be re-used when method returns - at least until IoWriteFuture is signalled
public IoWriteFuture write(IoBuffer buffer) {
- final Future future = new Future(null);
+ Future future = new Future(sessionWriteId, null);
session.write(buffer).addListener((IoFutureListener<WriteFuture>) cf -> {
Throwable t = cf.getException();
if (t != null) {
@@ -151,8 +153,8 @@ public class MinaSession extends AbstractInnerCloseable implements IoSession {
}
public static class Future extends AbstractIoWriteFuture {
- public Future(Object lock) {
- super(lock);
+ public Future(Object id, Object lock) {
+ super(id, lock);
}
public void setWritten() {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
index ad81b74..68397b1 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Connector.java
@@ -48,7 +48,7 @@ public class Nio2Connector extends Nio2Service implements IoConnector {
log.debug("Connecting to {}", address);
}
- IoConnectFuture future = new DefaultIoConnectFuture(null);
+ IoConnectFuture future = new DefaultIoConnectFuture(address, null);
AsynchronousSocketChannel channel = null;
AsynchronousSocketChannel socket = null;
try {
@@ -151,8 +151,8 @@ public class Nio2Connector extends Nio2Service implements IoConnector {
}
public static class DefaultIoConnectFuture extends DefaultSshFuture<IoConnectFuture> implements IoConnectFuture {
- public DefaultIoConnectFuture(Object lock) {
- super(lock);
+ public DefaultIoConnectFuture(Object id, Object lock) {
+ super(id, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
index b6a5b43..dbdac9e 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2DefaultIoWriteFuture.java
@@ -29,8 +29,8 @@ import org.apache.sshd.common.io.AbstractIoWriteFuture;
public class Nio2DefaultIoWriteFuture extends AbstractIoWriteFuture {
private final ByteBuffer buffer;
- public Nio2DefaultIoWriteFuture(Object lock, ByteBuffer buffer) {
- super(lock);
+ public Nio2DefaultIoWriteFuture(Object id, Object lock, ByteBuffer buffer) {
+ super(id, lock);
this.buffer = buffer;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
index 2686415..763b54c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Service.java
@@ -111,7 +111,7 @@ public abstract class Nio2Service extends AbstractInnerCloseable implements IoSe
@Override
protected Closeable getInnerCloseable() {
- return builder().parallel(sessions.values()).build();
+ return builder().parallel(toString(), sessions.values()).build();
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
index a846562..c8bcf89 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Session.java
@@ -137,7 +137,7 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
}
ByteBuffer buf = ByteBuffer.wrap(buffer.array(), buffer.rpos(), buffer.available());
- Nio2DefaultIoWriteFuture future = new Nio2DefaultIoWriteFuture(null, buf);
+ Nio2DefaultIoWriteFuture future = new Nio2DefaultIoWriteFuture(getRemoteAddress(), null, buf);
if (isClosing()) {
Throwable exc = new ClosedChannelException();
future.setException(exc);
@@ -181,7 +181,8 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
@Override
protected CloseFuture doCloseGracefully() {
- return builder().when(writes).run(() -> {
+ Object closeId = toString();
+ return builder().when(closeId, writes).run(closeId, () -> {
try {
AsynchronousSocketChannel socket = getSocket();
socket.shutdownOutput();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
index 14db9b1..83ae0d8 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractConnectionService.java
@@ -254,7 +254,7 @@ public abstract class AbstractConnectionService<S extends AbstractSession>
protected Closeable getInnerCloseable() {
return builder()
.sequential(forwarderHolder.get(), agentForwardHolder.get(), x11ForwardHolder.get())
- .parallel(channels.values())
+ .parallel(toString(), channels.values())
.build();
}
@@ -697,7 +697,7 @@ public abstract class AbstractConnectionService<S extends AbstractSession>
}
if (RequestHandler.Result.Replied.equals(result) || (!wantReply)) {
- return new AbstractIoWriteFuture(null) {
+ return new AbstractIoWriteFuture(req, null) {
{
setValue(Boolean.TRUE);
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
index 5d01de4..9d25fa9 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSession.java
@@ -927,7 +927,7 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen
@Override
protected Closeable getInnerCloseable() {
return builder()
- .parallel(getServices())
+ .parallel(toString(), getServices())
.close(ioSession)
.build();
}
@@ -1018,13 +1018,14 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen
if (!KexState.DONE.equals(kexState.get())) {
byte cmd = buffer.array()[buffer.rpos()];
if (cmd > SshConstants.SSH_MSG_KEX_LAST) {
+ String cmdName = SshConstants.getCommandMessageName(cmd & 0xFF);
synchronized (pendingPackets) {
if (!KexState.DONE.equals(kexState.get())) {
if (pendingPackets.isEmpty()) {
log.debug("writePacket({})[{}] Start flagging packets as pending until key exchange is done",
- this, SshConstants.getCommandMessageName(cmd & 0xFF));
+ this, cmdName);
}
- PendingWriteFuture future = new PendingWriteFuture(buffer);
+ PendingWriteFuture future = new PendingWriteFuture(cmdName, buffer);
pendingPackets.add(future);
return future;
}
@@ -2396,7 +2397,7 @@ public abstract class AbstractSession extends AbstractKexFactoryManager implemen
log.info("requestNewKeysExchange({}) Initiating key re-exchange", this);
sendKexInit();
- DefaultKeyExchangeFuture newFuture = new DefaultKeyExchangeFuture(null);
+ DefaultKeyExchangeFuture newFuture = new DefaultKeyExchangeFuture(toString(), null);
DefaultKeyExchangeFuture kexFuture = kexFutureHolder.getAndSet(newFuture);
if (kexFuture != null) {
synchronized (kexFuture) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/PendingWriteFuture.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/PendingWriteFuture.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/PendingWriteFuture.java
index bfc7e46..9ce4b4f 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/PendingWriteFuture.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/PendingWriteFuture.java
@@ -33,8 +33,8 @@ import org.apache.sshd.common.util.buffer.Buffer;
public class PendingWriteFuture extends AbstractIoWriteFuture implements SshFutureListener<IoWriteFuture> {
private final Buffer buffer;
- public PendingWriteFuture(Buffer buffer) {
- super(null);
+ public PendingWriteFuture(Object id, Buffer buffer) {
+ super(id, null);
this.buffer = Objects.requireNonNull(buffer, "No buffer provided");
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/AbstractCloseable.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/AbstractCloseable.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/AbstractCloseable.java
index 1c5d78f..0a4c169 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/AbstractCloseable.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/AbstractCloseable.java
@@ -49,7 +49,7 @@ public abstract class AbstractCloseable extends IoBaseCloseable {
/**
* A future that will be set 'closed' when the object is actually closed
*/
- protected final CloseFuture closeFuture = new DefaultCloseFuture(lock);
+ protected final CloseFuture closeFuture;
protected AbstractCloseable() {
this("");
@@ -57,6 +57,7 @@ public abstract class AbstractCloseable extends IoBaseCloseable {
protected AbstractCloseable(String discriminator) {
super(discriminator);
+ closeFuture = new DefaultCloseFuture(discriminator, lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/Builder.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/Builder.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/Builder.java
index 15e9da3..847d49c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/Builder.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/Builder.java
@@ -39,8 +39,8 @@ public final class Builder implements ObjectBuilder<Closeable> {
this.lock = Objects.requireNonNull(lock, "No lock");
}
- public Builder run(Runnable r) {
- return close(new SimpleCloseable(lock) {
+ public Builder run(Object id, Runnable r) {
+ return close(new SimpleCloseable(id, lock) {
@Override
protected void doClose(boolean immediately) {
try {
@@ -55,7 +55,7 @@ public final class Builder implements ObjectBuilder<Closeable> {
@SuppressWarnings("rawtypes")
public <T extends SshFuture> Builder when(SshFuture<T> future) {
if (future != null) {
- when(Collections.singleton(future));
+ when(future.getId(), Collections.singleton(future));
}
return this;
}
@@ -63,12 +63,12 @@ public final class Builder implements ObjectBuilder<Closeable> {
@SuppressWarnings("rawtypes")
@SafeVarargs
public final <T extends SshFuture> Builder when(SshFuture<T>... futures) {
- return when(Arrays.asList(futures));
+ return when(getClass().getSimpleName(), Arrays.asList(futures));
}
@SuppressWarnings("rawtypes")
- public <T extends SshFuture> Builder when(Iterable<? extends SshFuture<T>> futures) {
- return close(new FuturesCloseable<>(lock, futures));
+ public <T extends SshFuture> Builder when(Object id, Iterable<? extends SshFuture<T>> futures) {
+ return close(new FuturesCloseable<>(id, lock, futures));
}
public Builder sequential(Closeable... closeables) {
@@ -78,21 +78,21 @@ public final class Builder implements ObjectBuilder<Closeable> {
return this;
}
- public Builder sequential(Iterable<Closeable> closeables) {
- return close(new SequentialCloseable(lock, closeables));
+ public Builder sequential(Object id, Iterable<Closeable> closeables) {
+ return close(new SequentialCloseable(id, lock, closeables));
}
public Builder parallel(Closeable... closeables) {
if (closeables.length == 1) {
close(closeables[0]);
} else if (closeables.length > 0) {
- parallel(Arrays.asList(closeables));
+ parallel(getClass().getSimpleName(), Arrays.asList(closeables));
}
return this;
}
- public Builder parallel(Iterable<? extends Closeable> closeables) {
- return close(new ParallelCloseable(lock, closeables));
+ public Builder parallel(Object id, Iterable<? extends Closeable> closeables) {
+ return close(new ParallelCloseable(id, lock, closeables));
}
public Builder close(Closeable c) {
@@ -105,11 +105,11 @@ public final class Builder implements ObjectBuilder<Closeable> {
@Override
public Closeable build() {
if (closeables.isEmpty()) {
- return new SimpleCloseable(lock);
+ return new SimpleCloseable(getClass().getSimpleName(), lock);
} else if (closeables.size() == 1) {
return closeables.get(0);
} else {
- return new SequentialCloseable(lock, closeables);
+ return new SequentialCloseable(getClass().getSimpleName(), lock, closeables);
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/FuturesCloseable.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/FuturesCloseable.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/FuturesCloseable.java
index 2a24ffc..13dffb7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/FuturesCloseable.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/FuturesCloseable.java
@@ -34,8 +34,8 @@ public class FuturesCloseable<T extends SshFuture> extends SimpleCloseable {
private final Iterable<? extends SshFuture<T>> futures;
- public FuturesCloseable(Object lock, Iterable<? extends SshFuture<T>> futures) {
- super(lock);
+ public FuturesCloseable(Object id, Object lock, Iterable<? extends SshFuture<T>> futures) {
+ super(id, lock);
this.futures = (futures == null) ? Collections.emptyList() : futures;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/ParallelCloseable.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/ParallelCloseable.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/ParallelCloseable.java
index 029c9a0..16634cc 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/ParallelCloseable.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/ParallelCloseable.java
@@ -35,8 +35,8 @@ public class ParallelCloseable extends SimpleCloseable {
private final Iterable<? extends Closeable> closeables;
- public ParallelCloseable(Object lock, Iterable<? extends Closeable> closeables) {
- super(lock);
+ public ParallelCloseable(Object id, Object lock, Iterable<? extends Closeable> closeables) {
+ super(id, lock);
this.closeables = (closeables == null) ? Collections.emptyList() : closeables;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SequentialCloseable.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SequentialCloseable.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SequentialCloseable.java
index 67abd88..c018b00 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SequentialCloseable.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SequentialCloseable.java
@@ -34,8 +34,8 @@ import org.apache.sshd.common.future.SshFutureListener;
public class SequentialCloseable extends SimpleCloseable {
private final Iterable<? extends Closeable> closeables;
- public SequentialCloseable(Object lock, Iterable<? extends Closeable> closeables) {
- super(lock);
+ public SequentialCloseable(Object id, Object lock, Iterable<? extends Closeable> closeables) {
+ super(id, lock);
this.closeables = (closeables == null) ? Collections.emptyList() : closeables;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SimpleCloseable.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SimpleCloseable.java b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SimpleCloseable.java
index 8978972..58e2932 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SimpleCloseable.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/closeable/SimpleCloseable.java
@@ -32,8 +32,8 @@ public class SimpleCloseable extends IoBaseCloseable {
protected final DefaultCloseFuture future;
protected final AtomicBoolean closing;
- public SimpleCloseable(Object lock) {
- future = new DefaultCloseFuture(lock);
+ public SimpleCloseable(Object id, Object lock) {
+ future = new DefaultCloseFuture(id, lock);
closing = new AtomicBoolean();
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java b/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java
index 0985b2b..0d1d421 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/SshServer.java
@@ -349,21 +349,22 @@ public class SshServer extends AbstractFactoryManager implements ServerFactoryMa
@Override
protected Closeable getInnerCloseable() {
+ Object closeId = toString();
return builder()
- .run(() -> removeSessionTimeout(sessionFactory))
- .sequential(acceptor, ioServiceFactory)
- .run(() -> {
- acceptor = null;
- ioServiceFactory = null;
- if (shutdownExecutor && (executor != null) && (!executor.isShutdown())) {
- try {
- executor.shutdownNow();
- } finally {
- executor = null;
- }
+ .run(closeId, () -> removeSessionTimeout(sessionFactory))
+ .sequential(acceptor, ioServiceFactory)
+ .run(closeId, () -> {
+ acceptor = null;
+ ioServiceFactory = null;
+ if (shutdownExecutor && (executor != null) && (!executor.isShutdown())) {
+ try {
+ executor.shutdownNow();
+ } finally {
+ executor = null;
}
- })
- .build();
+ }
+ })
+ .build();
}
/**
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
index c976c3b..2f3a766 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/channel/AbstractServerChannel.java
@@ -86,7 +86,7 @@ public abstract class AbstractServerChannel extends AbstractChannel implements S
}
protected OpenFuture doInit(Buffer buffer) {
- OpenFuture f = new DefaultOpenFuture(this);
+ OpenFuture f = new DefaultOpenFuture(this, this);
String changeEvent = "doInit";
try {
signalChannelOpenSuccess();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
index 44a5087..b7c4712 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/channel/ChannelSession.java
@@ -95,7 +95,7 @@ public class ChannelSession extends AbstractServerChannel {
protected Buffer tempBuffer;
protected final AtomicBoolean commandStarted = new AtomicBoolean(false);
protected final StandardEnvironment env = new StandardEnvironment();
- protected final CloseFuture commandExitFuture = new DefaultCloseFuture(lock);
+ protected final CloseFuture commandExitFuture;
public ChannelSession() {
this(DEFAULT_HANDLERS);
@@ -103,6 +103,8 @@ public class ChannelSession extends AbstractServerChannel {
public ChannelSession(Collection<? extends RequestHandler<Channel>> handlers) {
super(handlers);
+
+ commandExitFuture = new DefaultCloseFuture(getClass().getSimpleName(), lock);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java b/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java
index 317e669..8b8d201 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/forward/TcpipServerChannel.java
@@ -131,7 +131,7 @@ public class TcpipServerChannel extends AbstractServerChannel {
Session session = getSession();
FactoryManager manager = Objects.requireNonNull(session.getFactoryManager(), "No factory manager");
TcpForwardingFilter filter = manager.getTcpForwardingFilter();
- OpenFuture f = new DefaultOpenFuture(this);
+ OpenFuture f = new DefaultOpenFuture(this, this);
try {
if ((address == null) || (filter == null) || (!filter.canConnect(type, address, session))) {
if (log.isDebugEnabled()) {
@@ -260,7 +260,7 @@ public class TcpipServerChannel extends AbstractServerChannel {
// shutdown the temporary executor service if had to create it
boolean shutdown = (executors != service) || isShutdownOnExit();
- return builder().when(closingFeature).run(() -> {
+ return builder().when(closingFeature).run(toString(), () -> {
executors.submit(() -> {
try {
if (log.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/main/java/org/apache/sshd/server/x11/ChannelForwardedX11.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/x11/ChannelForwardedX11.java b/sshd-core/src/main/java/org/apache/sshd/server/x11/ChannelForwardedX11.java
index 6f99fed..42c3c38 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/x11/ChannelForwardedX11.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/x11/ChannelForwardedX11.java
@@ -53,7 +53,7 @@ public class ChannelForwardedX11 extends AbstractClientChannel {
if (closeFuture.isClosed()) {
throw new SshException("Session has been closed");
}
- openFuture = new DefaultOpenFuture(lock);
+ openFuture = new DefaultOpenFuture(remote, lock);
Session session = getSession();
if (log.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/common/future/DefaultSshFutureTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/future/DefaultSshFutureTest.java b/sshd-core/src/test/java/org/apache/sshd/common/future/DefaultSshFutureTest.java
index 4d3edb2..6125693 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/future/DefaultSshFutureTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/future/DefaultSshFutureTest.java
@@ -38,8 +38,8 @@ public class DefaultSshFutureTest extends BaseTestSupport {
@Test
@SuppressWarnings("rawtypes")
public void testAwaitUninterrupted() {
- final DefaultSshFuture future = new DefaultSshFuture(null);
- final Object expected = new Object();
+ DefaultSshFuture future = new DefaultSshFuture(getCurrentTestName(), null);
+ Object expected = new Object();
new Thread() {
@Override
public void run() {
@@ -59,16 +59,16 @@ public class DefaultSshFutureTest extends BaseTestSupport {
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testNotifyMultipleListeners() {
- final DefaultSshFuture future = new DefaultSshFuture(null);
- final AtomicInteger listenerCount = new AtomicInteger(0);
- final Object expected = new Object();
- final SshFutureListener listener = f -> {
+ DefaultSshFuture future = new DefaultSshFuture(getCurrentTestName(), null);
+ AtomicInteger listenerCount = new AtomicInteger(0);
+ Object expected = new Object();
+ SshFutureListener listener = f -> {
assertSame("Mismatched future instance", future, f);
assertSame("Mismatched value object", expected, future.getValue());
listenerCount.incrementAndGet();
};
- final int numListeners = Byte.SIZE;
+ int numListeners = Byte.SIZE;
for (int index = 0; index < numListeners; index++) {
future.addListener(listener);
}
@@ -80,10 +80,10 @@ public class DefaultSshFutureTest extends BaseTestSupport {
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testListenerInvokedDirectlyAfterResultSet() {
- final DefaultSshFuture future = new DefaultSshFuture(null);
- final AtomicInteger listenerCount = new AtomicInteger(0);
- final Object expected = new Object();
- final SshFutureListener listener = f -> {
+ DefaultSshFuture future = new DefaultSshFuture(getCurrentTestName(), null);
+ AtomicInteger listenerCount = new AtomicInteger(0);
+ Object expected = new Object();
+ SshFutureListener listener = f -> {
assertSame("Mismatched future instance", future, f);
assertSame("Mismatched value object", expected, future.getValue());
listenerCount.incrementAndGet();
@@ -98,7 +98,7 @@ public class DefaultSshFutureTest extends BaseTestSupport {
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testAddAndRemoveRegisteredListenersBeforeResultSet() {
- DefaultSshFuture future = new DefaultSshFuture(null);
+ DefaultSshFuture future = new DefaultSshFuture(getCurrentTestName(), null);
SshFutureListener listener = Mockito.mock(SshFutureListener.class);
for (int index = 1; index <= Byte.SIZE; index++) {
future.addListener(listener);
@@ -114,10 +114,10 @@ public class DefaultSshFutureTest extends BaseTestSupport {
@Test
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testListenerNotRemovedIfResultSet() {
- final DefaultSshFuture future = new DefaultSshFuture(null);
- final AtomicInteger listenerCount = new AtomicInteger(0);
- final Object expected = new Object();
- final SshFutureListener listener = f -> {
+ DefaultSshFuture future = new DefaultSshFuture(getCurrentTestName(), null);
+ AtomicInteger listenerCount = new AtomicInteger(0);
+ Object expected = new Object();
+ SshFutureListener listener = f -> {
assertSame("Mismatched future instance", future, f);
assertSame("Mismatched value object", expected, future.getValue());
listenerCount.incrementAndGet();
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java b/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
index 538f2cd..026dab2 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/session/helpers/AbstractSessionTest.java
@@ -298,7 +298,7 @@ public class AbstractSessionTest extends BaseTestSupport {
private final CloseFuture closeFuture;
public MyIoSession() {
- closeFuture = new DefaultCloseFuture(open);
+ closeFuture = new DefaultCloseFuture(Test.class.getSimpleName(), open);
}
@Override
@@ -369,7 +369,7 @@ public class AbstractSessionTest extends BaseTestSupport {
throw new WriteAbortedException("Failed to offer outgoing buffer", new IllegalStateException("Offer failure"));
}
- IoWriteFutureImpl future = new IoWriteFutureImpl(buffer);
+ IoWriteFutureImpl future = new IoWriteFutureImpl(Test.class.getSimpleName(), buffer);
future.setValue(Boolean.TRUE);
return future;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/common/util/closeable/CloseableUtilsTest.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/common/util/closeable/CloseableUtilsTest.java b/sshd-core/src/test/java/org/apache/sshd/common/util/closeable/CloseableUtilsTest.java
index f8f5a0d..6bea23b 100644
--- a/sshd-core/src/test/java/org/apache/sshd/common/util/closeable/CloseableUtilsTest.java
+++ b/sshd-core/src/test/java/org/apache/sshd/common/util/closeable/CloseableUtilsTest.java
@@ -110,9 +110,9 @@ public class CloseableUtilsTest extends BaseTestSupport {
@Test
public void testCloseImmediateCalledAndWait() throws Exception {
- final DefaultCloseFuture future = new DefaultCloseFuture(this);
- final AtomicInteger callsCount = new AtomicInteger(0);
- final Closeable closeable = new IoBaseCloseable() {
+ DefaultCloseFuture future = new DefaultCloseFuture(this, this);
+ AtomicInteger callsCount = new AtomicInteger(0);
+ Closeable closeable = new IoBaseCloseable() {
@Override
public CloseFuture close(boolean immediately) {
assertTrue("Closure is not immediate", immediately);
@@ -140,6 +140,7 @@ public class CloseableUtilsTest extends BaseTestSupport {
return false;
}
};
+
ExecutorService service = ThreadUtils.newSingleThreadExecutor(getCurrentTestName());
try {
Future<?> task = service.submit((Runnable) () -> {
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/deprecated/ClientUserAuthServiceOld.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/deprecated/ClientUserAuthServiceOld.java b/sshd-core/src/test/java/org/apache/sshd/deprecated/ClientUserAuthServiceOld.java
index 4e8e11d..3224913 100644
--- a/sshd-core/src/test/java/org/apache/sshd/deprecated/ClientUserAuthServiceOld.java
+++ b/sshd-core/src/test/java/org/apache/sshd/deprecated/ClientUserAuthServiceOld.java
@@ -75,7 +75,7 @@ public class ClientUserAuthServiceOld extends AbstractCloseable implements Servi
session = (ClientSessionImpl) s;
lock = session.getLock();
// Maintain the current auth status in the authFuture.
- authFuture = new DefaultAuthFuture(lock);
+ authFuture = new DefaultAuthFuture(s.toString(), lock);
}
@Override
@@ -150,7 +150,7 @@ public class ClientUserAuthServiceOld extends AbstractCloseable implements Servi
// Set up the next round of authentication. Each round gets a new lock.
this.userAuth = userAuth;
// The new future !isDone() - i.e., in progress blocking out other waits.
- this.authFuture = new DefaultAuthFuture(lock);
+ this.authFuture = new DefaultAuthFuture(getClass().getSimpleName(), lock);
log.debug("ready to try authentication with new lock");
return true;
}
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java b/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
index b0ff4bb..67d1516 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/AsyncEchoShellFactory.java
@@ -99,12 +99,12 @@ public class AsyncEchoShellFactory implements Factory<Command> {
@Override
public void setIoOutputStream(IoOutputStream out) {
- this.out = new BufferedIoOutputStream(out);
+ this.out = new BufferedIoOutputStream("STDOUT", out);
}
@Override
public void setIoErrorStream(IoOutputStream err) {
- this.err = new BufferedIoOutputStream(err);
+ this.err = new BufferedIoOutputStream("STDERR", err);
}
@Override
http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/693fa5d9/sshd-core/src/test/java/org/apache/sshd/util/test/BogusChannel.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/test/java/org/apache/sshd/util/test/BogusChannel.java b/sshd-core/src/test/java/org/apache/sshd/util/test/BogusChannel.java
index 96bb36d..afab75d 100644
--- a/sshd-core/src/test/java/org/apache/sshd/util/test/BogusChannel.java
+++ b/sshd-core/src/test/java/org/apache/sshd/util/test/BogusChannel.java
@@ -50,7 +50,7 @@ public class BogusChannel extends AbstractChannel {
@Override
public OpenFuture open(int recipient, long rwsize, long rmpsize, Buffer buffer) {
- return new DefaultOpenFuture(this.lock);
+ return new DefaultOpenFuture(this, this.lock);
}
@Override