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 2020/04/16 07:14:12 UTC
[mina-sshd] branch master updated (fd0599c -> c39dd0d)
This is an automated email from the ASF dual-hosted git repository.
lgoldstein pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git.
from fd0599c [SSHD-966] Separated pending packets enqueue to separated method in AbstractSession
new 001d2f6 Access AbstractCommandSupport internal state values via getters where applicable
new c39dd0d [SSHD-977] Use consistent logging policy of caught exceptions details
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGES.md | 4 +-
.../agent/common/DefaultAgentForwardSupport.java | 8 +-
.../apache/sshd/agent/local/AgentServerProxy.java | 2 +-
.../java/org/apache/sshd/client/SshClient.java | 8 +-
.../apache/sshd/client/channel/ChannelSession.java | 25 ++---
.../client/session/ClientConnectionService.java | 8 +-
.../sshd/common/channel/AbstractChannel.java | 27 ++---
.../common/channel/BufferedIoOutputStream.java | 50 ++++-----
.../common/channel/ChannelAsyncOutputStream.java | 5 +-
.../sshd/common/channel/ChannelOutputStream.java | 12 +--
.../common/forward/DefaultForwardingFilter.java | 12 +--
.../apache/sshd/common/io/nio2/Nio2Service.java | 10 +-
.../apache/sshd/common/io/nio2/Nio2Session.java | 50 ++++-----
.../session/helpers/AbstractConnectionService.java | 15 ++-
.../common/session/helpers/AbstractSession.java | 20 ++--
.../session/helpers/AbstractSessionIoHandler.java | 9 +-
.../sshd/common/session/helpers/SessionHelper.java | 113 +++++++++------------
.../session/helpers/SessionTimeoutListener.java | 4 +
.../server/command/AbstractCommandSupport.java | 23 +++--
.../sshd/server/session/AbstractServerSession.java | 10 +-
.../sshd/server/session/ServerUserAuthService.java | 29 +++---
.../sshd/server/x11/DefaultX11ForwardSupport.java | 36 ++++---
.../apache/sshd/common/io/mina/MinaAcceptor.java | 4 +-
.../apache/sshd/common/io/mina/MinaConnector.java | 4 +-
.../org/apache/sshd/server/scp/ScpCommand.java | 14 +--
.../subsystem/sftp/SftpDirEntryIterator.java | 4 +-
.../subsystem/sftp/fs/SftpFileSystemProvider.java | 5 +-
.../subsystem/sftp/impl/SimpleSftpClientImpl.java | 32 +++---
.../sftp/AbstractSftpSubsystemHelper.java | 23 ++---
.../sshd/server/subsystem/sftp/SftpSubsystem.java | 8 +-
30 files changed, 273 insertions(+), 301 deletions(-)
[mina-sshd] 02/02: [SSHD-977] Use consistent logging policy of
caught exceptions details
Posted by lg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
commit c39dd0d890dfe241681941aeceff7025b6c64ea2
Author: Lyor Goldstein <lg...@apache.org>
AuthorDate: Sun Apr 12 21:11:50 2020 +0300
[SSHD-977] Use consistent logging policy of caught exceptions details
---
CHANGES.md | 4 +-
.../agent/common/DefaultAgentForwardSupport.java | 8 +-
.../apache/sshd/agent/local/AgentServerProxy.java | 2 +-
.../java/org/apache/sshd/client/SshClient.java | 8 +-
.../apache/sshd/client/channel/ChannelSession.java | 25 ++---
.../client/session/ClientConnectionService.java | 8 +-
.../sshd/common/channel/AbstractChannel.java | 27 ++---
.../common/channel/BufferedIoOutputStream.java | 50 ++++-----
.../common/channel/ChannelAsyncOutputStream.java | 5 +-
.../sshd/common/channel/ChannelOutputStream.java | 12 +--
.../common/forward/DefaultForwardingFilter.java | 12 +--
.../apache/sshd/common/io/nio2/Nio2Service.java | 10 +-
.../apache/sshd/common/io/nio2/Nio2Session.java | 50 ++++-----
.../session/helpers/AbstractConnectionService.java | 15 ++-
.../common/session/helpers/AbstractSession.java | 20 ++--
.../session/helpers/AbstractSessionIoHandler.java | 9 +-
.../sshd/common/session/helpers/SessionHelper.java | 113 +++++++++------------
.../session/helpers/SessionTimeoutListener.java | 4 +
.../sshd/server/session/AbstractServerSession.java | 10 +-
.../sshd/server/session/ServerUserAuthService.java | 29 +++---
.../sshd/server/x11/DefaultX11ForwardSupport.java | 36 ++++---
.../apache/sshd/common/io/mina/MinaAcceptor.java | 4 +-
.../apache/sshd/common/io/mina/MinaConnector.java | 4 +-
.../subsystem/sftp/SftpDirEntryIterator.java | 4 +-
.../subsystem/sftp/fs/SftpFileSystemProvider.java | 5 +-
.../subsystem/sftp/impl/SimpleSftpClientImpl.java | 32 +++---
.../sftp/AbstractSftpSubsystemHelper.java | 23 ++---
.../sshd/server/subsystem/sftp/SftpSubsystem.java | 8 +-
28 files changed, 252 insertions(+), 285 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index f978527..7c0747d 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -29,4 +29,6 @@ where the former validate the messages and deal with the idle timeout, and the l
* [SSHD-970](https://issues.apache.org/jira/browse/SSHD-970) - `transferTo` function of `SftpRemotePathChannel` will loop if count parameter is greater than file size
-* [SSHD-972](https://issues.apache.org/jira/browse/SSHD-972) - Add support for peers using OpenSSH "security key" key types
\ No newline at end of file
+* [SSHD-972](https://issues.apache.org/jira/browse/SSHD-972) - Add support for peers using OpenSSH "security key" key types
+
+* [SSHD-977](https://issues.apache.org/jira/browse/SSHD-977) - Apply consistent logging policy to caught exceptions
\ No newline at end of file
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/common/DefaultAgentForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/agent/common/DefaultAgentForwardSupport.java
index 9af4a84..38b3fd2 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/common/DefaultAgentForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/common/DefaultAgentForwardSupport.java
@@ -65,12 +65,10 @@ public class DefaultAgentForwardSupport extends AbstractCloseable implements Age
return agentId;
} catch (Throwable t) {
+ log.error("initialize({}) failed ({}) to create server: {}",
+ session, t.getClass().getSimpleName(), t.getMessage());
if (log.isDebugEnabled()) {
- log.debug("initialize({}) failed ({}) to create server: {}",
- session, t.getClass().getSimpleName(), t.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("initialize(" + session + ") server creation failure details", t);
+ log.error("initialize(" + session + ") server creation failure details", t);
}
if (t instanceof IOException) {
throw (IOException) t;
diff --git a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
index 24a34cd..8a9c0af 100644
--- a/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
+++ b/sshd-core/src/main/java/org/apache/sshd/agent/local/AgentServerProxy.java
@@ -52,7 +52,7 @@ public class AgentServerProxy extends AbstractLoggingBean implements SshAgentSer
return channel.getAgent();
} catch (Throwable t) {
if (log.isDebugEnabled()) {
- log.debug("createClient(" + service.getSession() + ")[" + getId() + ")"
+ log.warn("createClient(" + service.getSession() + ")[" + getId() + ")"
+ " failed (" + t.getClass().getSimpleName() + ")"
+ " to create client: " + t.getMessage());
}
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 477d7c7..fee16ad 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
@@ -442,12 +442,10 @@ public class SshClient extends AbstractFactoryManager implements ClientFactoryMa
"Failed to receive closure confirmation within " + maxWait + " millis");
}
} catch (IOException e) {
- if (log.isDebugEnabled()) {
- log.debug(e.getClass().getSimpleName() + " while stopping client: " + e.getMessage());
- }
+ log.warn(e.getClass().getSimpleName() + " while stopping client: " + e.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("Stop exception details", e);
+ if (log.isDebugEnabled()) {
+ log.warn("Stop exception details", e);
}
} finally {
// clear the attributes since we close stop the client
diff --git a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
index 6612079..2a162c5 100644
--- a/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/client/channel/ChannelSession.java
@@ -156,13 +156,11 @@ public class ChannelSession extends AbstractClientChannel {
pumperService.shutdownNow();
} catch (Exception e) {
- // we log it as DEBUG since it is relatively harmless
+ // we log it as WARN since it is relatively harmless
+ log.warn("doCloseImmediately({}) failed {} to shutdown stream pumper: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("doCloseImmediately({}) failed {} to shutdown stream pumper: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("doCloseImmediately(" + this + ") stream pumper shutdown error details", e);
+ log.warn("doCloseImmediately(" + this + ") stream pumper shutdown error details", e);
}
} finally {
pumper = null;
@@ -172,6 +170,7 @@ public class ChannelSession extends AbstractClientChannel {
}
protected void pumpInputStream() {
+ boolean debugEnabled = log.isDebugEnabled();
try {
Session session = getSession();
Window wRemote = getRemoteWindow();
@@ -186,7 +185,7 @@ public class ChannelSession extends AbstractClientChannel {
while (!closeFuture.isClosed()) {
int len = securedRead(in, maxChunkSize, buffer, 0, buffer.length);
if (len < 0) {
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("pumpInputStream({}) EOF signalled", this);
}
sendEof();
@@ -200,17 +199,15 @@ public class ChannelSession extends AbstractClientChannel {
}
}
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("pumpInputStream({}) close future closed", this);
}
} catch (Exception e) {
if (!isClosing()) {
- if (log.isDebugEnabled()) {
- log.debug("pumpInputStream({}) Caught {} : {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("pumpInputStream(" + this + ") caught exception details", e);
+ log.error("pumpInputStream({}) Caught {} : {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
+ if (debugEnabled) {
+ log.error("pumpInputStream(" + this + ") caught exception details", e);
}
close(false);
}
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 8911cc5..a727cb2 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
@@ -142,12 +142,10 @@ public class ClientConnectionService
return true;
} catch (IOException | RuntimeException | Error e) {
session.exceptionCaught(e);
+ log.warn("sendHeartBeat({}) failed ({}) to send heartbeat #{} request={}: {}",
+ session, e.getClass().getSimpleName(), heartbeatCount, heartbeatRequest, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("sendHeartBeat({}) failed ({}) to send heartbeat #{} request={}: {}",
- session, e.getClass().getSimpleName(), heartbeatCount, heartbeatRequest, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("sendHeartBeat(" + session + ") exception details", e);
+ log.warn("sendHeartBeat(" + session + ") exception details", e);
}
return false;
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 4a393b0..27bff8a 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
@@ -276,7 +276,7 @@ public abstract class AbstractChannel
this, e.getClass().getSimpleName(), handler.getClass().getSimpleName(),
req, wantReply, e.getMessage());
if (debugEnabled) {
- log.debug("handleRequest(" + this + ") request=" + req
+ log.warn("handleRequest(" + this + ") request=" + req
+ "[want-reply=" + wantReply + "] processing failure details",
e);
}
@@ -444,14 +444,12 @@ public abstract class AbstractChannel
log.warn("signalChannelOpenFailure({}) failed ({}) to inform listener of open failure={}: {}",
this, ignored.getClass().getSimpleName(), reason.getClass().getSimpleName(), ignored.getMessage());
if (log.isDebugEnabled()) {
- log.debug("doInit(" + this + ") inform listener open failure details", ignored);
- }
+ log.warn("doInit(" + this + ") inform listener open failure details", ignored);
- if (log.isTraceEnabled()) {
Throwable[] suppressed = ignored.getSuppressed();
if (GenericUtils.length(suppressed) > 0) {
for (Throwable s : suppressed) {
- log.trace("signalChannelOpenFailure(" + this + ") suppressed channel open failure signalling", s);
+ log.warn("signalChannelOpenFailure(" + this + ") suppressed channel open failure signalling", s);
}
}
}
@@ -477,7 +475,7 @@ public abstract class AbstractChannel
log.warn("notifyStateChanged({})[{}] {} while signal channel state change: {}",
this, hint, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("notifyStateChanged(" + this + ")[" + hint + "] channel state signalling failure details", e);
+ log.warn("notifyStateChanged(" + this + ")[" + hint + "] channel state signalling failure details", e);
}
} finally {
synchronized (futureLock) {
@@ -633,13 +631,11 @@ public abstract class AbstractChannel
}
});
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("close({})[immediately={}] {} while writing SSH_MSG_CHANNEL_CLOSE packet on channel: {}",
- channel, immediately, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("close({})[immediately={}] {} while writing SSH_MSG_CHANNEL_CLOSE packet on channel: {}",
+ channel, immediately, e.getClass().getSimpleName(), e.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("close(" + channel + ")[immediately=" + immediately + "] packet write failure details", e);
+ if (log.isDebugEnabled()) {
+ log.warn("close(" + channel + ")[immediately=" + immediately + "] packet write failure details", e);
}
channel.close(true);
}
@@ -730,13 +726,12 @@ public abstract class AbstractChannel
Throwable e = GenericUtils.peelException(err);
log.warn("signalChannelClosed({}) {} while signal channel closed: {}", this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("signalChannelClosed(" + this + ") channel closed signalling failure details", e);
- }
- if (log.isTraceEnabled()) {
+ log.warn("signalChannelClosed(" + this + ") channel closed signalling failure details", e);
+
Throwable[] suppressed = e.getSuppressed();
if (GenericUtils.length(suppressed) > 0) {
for (Throwable s : suppressed) {
- log.trace("signalChannelClosed(" + this + ") suppressed closed channel signalling failure", s);
+ log.warn("signalChannelClosed(" + this + ") suppressed closed channel signalling failure", s);
}
}
}
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 1cb75aa..d39c1f5 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
@@ -52,7 +52,7 @@ public class BufferedIoOutputStream extends AbstractInnerCloseable implements Io
@Override
public IoWriteFuture writePacket(Buffer buffer) throws IOException {
if (isClosing()) {
- throw new EOFException("Closed");
+ throw new EOFException("Closed - state=" + state);
}
IoWriteFutureImpl future = new IoWriteFutureImpl(getId(), buffer);
@@ -71,36 +71,40 @@ public class BufferedIoOutputStream extends AbstractInnerCloseable implements Io
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());
+ 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(future);
}
- 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());
- }
+ protected void finishWrite(IoWriteFutureImpl future) {
+ writes.remove(future);
+ currentWrite.compareAndSet(future, null);
+ try {
+ startWriting();
+ } catch (IOException e) {
+ log.error("finishWrite({}) failed ({}) re-start writing: {}",
+ out, e.getClass().getSimpleName(), e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.error("finishWrite(" + out + ") exception details", e);
}
- });
+ }
}
@Override
protected Closeable getInnerCloseable() {
return builder()
- .when(getId(), writes)
- .close(out)
- .build();
+ .when(getId(), writes)
+ .close(out)
+ .build();
}
@Override
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 e2f1ebd..a2066b3 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
@@ -78,7 +78,10 @@ public class ChannelAsyncOutputStream extends AbstractCloseable implements IoOut
packetWriter.close();
} catch (IOException e) {
log.error("preClose({}) Failed ({}) to pre-close packet writer: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
+ this, e.getClass().getSimpleName(), e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.error("preClose(" + this + ") packet writer close exception details", e);
+ }
}
}
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
index a5168ee..4d04dea 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/channel/ChannelOutputStream.java
@@ -138,10 +138,8 @@ public class ChannelOutputStream extends OutputStream implements java.nio.channe
log.trace("write({}) len={} - available={}", this, l, available);
}
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("write({}) failed ({}) to wait for space of len={}: {}",
- this, e.getClass().getSimpleName(), l, e.getMessage());
- }
+ log.error("write({}) failed ({}) to wait for space of len={}: {}",
+ this, e.getClass().getSimpleName(), l, e.getMessage());
if ((e instanceof WindowClosedException) && (!closedState.getAndSet(true))) {
if (debugEnabled) {
@@ -198,11 +196,11 @@ public class ChannelOutputStream extends OutputStream implements java.nio.channe
log.trace("flush({}) len={}, available={}", this, total, available);
}
} catch (IOException e) {
+ log.error("flush({}) failed ({}) to wait for space of len={}: {}",
+ this, e.getClass().getSimpleName(), total, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("flush({}) failed ({}) to wait for space of len={}: {}",
- this, e.getClass().getSimpleName(), total, e.getMessage());
+ log.error("flush(" + this + ") wait for space len=" + total + " exception details", e);
}
-
throw e;
}
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 5be03e1..a31cacf 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
@@ -702,9 +702,9 @@ public class DefaultForwardingFilter
}
} catch (Error e) {
log.warn("localPortForwardingRequested({})[{}] failed ({}) to consult forwarding filter: {}",
- session, local, e.getClass().getSimpleName(), e.getMessage());
+ session, local, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("localPortForwardingRequested(" + this + ")[" + local + "] filter consultation failure details", e);
+ log.warn("localPortForwardingRequested(" + session + ")[" + local + "] filter consultation failure details", e);
}
throw new RuntimeSshException(e);
}
@@ -974,7 +974,7 @@ public class DefaultForwardingFilter
}
return (InetSocketAddress) GenericUtils.head(after);
} catch (IOException bindErr) {
- Set<SocketAddress> after = acceptor.getBoundAddresses();
+ Collection<SocketAddress> after = acceptor.getBoundAddresses();
if (GenericUtils.isEmpty(after)) {
close();
}
@@ -1123,11 +1123,9 @@ public class DefaultForwardingFilter
@Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
session.setAttribute(TcpipForwardingExceptionMarker.class, cause);
+ log.warn("exceptionCaught({}) {}: {}", session, cause.getClass().getSimpleName(), cause.getMessage());
if (debugEnabled) {
- log.debug("exceptionCaught({}) {}: {}", session, cause.getClass().getSimpleName(), cause.getMessage());
- }
- if (traceEnabled) {
- log.trace("exceptionCaught(" + session + ") caught exception details", cause);
+ log.warn("exceptionCaught(" + session + ") caught exception details", cause);
}
session.close(true);
}
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 066df84..73c4863 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
@@ -114,13 +114,11 @@ public abstract class Nio2Service extends AbstractInnerCloseable implements IoSe
throw new SocketTimeoutException("Failed to receive closure confirmation within " + maxWait + " millis");
}
} catch (IOException e) {
- if (log.isDebugEnabled()) {
- log.debug("dispose({}) {} while stopping service: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("dispose({}) {} while stopping service: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("dispose(" + this + ") Stop exception details", e);
+ if (log.isDebugEnabled()) {
+ log.warn("dispose(" + this + ") Stop exception details", e);
}
}
}
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 aaeab26..d683015 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
@@ -138,23 +138,18 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
public void suspend() {
AsynchronousSocketChannel socket = getSocket();
- boolean debugEnabled = log.isDebugEnabled();
try {
socket.shutdownInput();
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("suspend({}) failed ({}) to shutdown input: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("suspend({}) failed ({}) to shutdown input: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
}
try {
socket.shutdownOutput();
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("suspend({}) failed ({}) to shutdown output: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("suspend({}) failed ({}) to shutdown output: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
}
}
@@ -194,13 +189,11 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
handler.exceptionCaught(this, exc);
} catch (Throwable e) {
Throwable t = GenericUtils.peelException(e);
- if (log.isDebugEnabled()) {
- log.debug("exceptionCaught({}) Exception handler threw {}, closing the session: {}",
- this, t.getClass().getSimpleName(), t.getMessage());
- }
+ log.warn("exceptionCaught({}) Exception handler threw {}, closing the session: {}",
+ this, t.getClass().getSimpleName(), t.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("exceptionCaught(" + this + ") exception handler failure details", t);
+ if (log.isDebugEnabled()) {
+ log.warn("exceptionCaught(" + this + ") exception handler failure details", t);
}
}
}
@@ -263,12 +256,11 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
if (debugEnabled) {
log.debug("doCloseImmediately({}) socket={} closed", this, socket);
}
-
} catch (IOException e) {
log.info("doCloseImmediately({}) {} caught while closing socket={}: {}",
this, e.getClass().getSimpleName(), socket, e.getMessage());
if (debugEnabled) {
- log.debug("doCloseImmediately(" + this + ") socket=" + socket + " close failure details", e);
+ log.info("doCloseImmediately(" + this + ") socket=" + socket + " close failure details", e);
}
}
@@ -279,13 +271,10 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
try {
handler.sessionClosed(this);
} catch (Throwable e) {
- if (debugEnabled) {
- log.debug("doCloseImmediately({}) {} while calling IoHandler#sessionClosed: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
-
- if (log.isTraceEnabled()) {
- log.trace("doCloseImmediately(" + this + ") IoHandler#sessionClosed failure details", e);
+ log.warn("doCloseImmediately({}) {} while calling IoHandler#sessionClosed: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.warn("doCloseImmediately(" + this + ") IoHandler#sessionClosed failure details", e);
}
}
@@ -457,8 +446,10 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
try {
socket.write(buffer, null, completionHandler);
} catch (Throwable t) {
+ log.warn("handleCompletedWriteCycle({}) {} while writing to socket len={}: {}",
+ this, t.getClass().getSimpleName(), writeLen, t.getMessage());
if (log.isDebugEnabled()) {
- log.debug("handleCompletedWriteCycle(" + this + ") Exception caught while writing " + writeLen + " bytes", t);
+ log.warn("handleCompletedWriteCycle(" + this + ") Exception caught while writing " + writeLen + " bytes", t);
}
future.setWritten();
finishWrite(future);
@@ -485,8 +476,7 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
this, exc.getClass().getSimpleName(), writeLen, exc.getMessage());
}
- boolean traceEnabled = log.isTraceEnabled();
- if (traceEnabled) {
+ if (log.isTraceEnabled()) {
log.trace("handleWriteCycleFailure(" + this + ") len=" + writeLen + " failure details", exc);
}
future.setException(exc);
@@ -496,10 +486,8 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
try {
finishWrite(future);
} catch (RuntimeException e) {
- if (traceEnabled) {
- log.trace("handleWriteCycleFailure({}) failed ({}) to finish writing: {}",
- this, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("handleWriteCycleFailure({}) failed ({}) to finish writing: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
}
}
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 6f8233e..4e706f5 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
@@ -255,12 +255,10 @@ public abstract class AbstractConnectionService
} catch (Throwable e) {
session.exceptionCaught(e);
+ log.warn("sendHeartBeat({}) failed ({}) to send heartbeat #{} request={}: {}",
+ session, e.getClass().getSimpleName(), heartbeatCount, heartbeatType, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("sendHeartBeat({}) failed ({}) to send heartbeat #{} request={}: {}",
- session, e.getClass().getSimpleName(), heartbeatCount, heartbeatType, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("sendHeartBeat(" + session + ") exception details", e);
+ log.warn("sendHeartBeat(" + session + ") exception details", e);
}
return false;
@@ -818,9 +816,10 @@ public abstract class AbstractConnectionService
sendChannelOpenFailure(buf, sender, reasonCode, message, "");
}
} catch (IOException e) {
+ log.warn("operationComplete({}) {}: {}",
+ AbstractConnectionService.this, e.getClass().getSimpleName(), e.getMessage());
if (debugEnabled) {
- log.debug("operationComplete({}) {}: {}",
- AbstractConnectionService.this, e.getClass().getSimpleName(), e.getMessage());
+ log.warn("operationComplete(" + AbstractConnectionService.this + ") exception details", e);
}
session.exceptionCaught(e);
}
@@ -875,7 +874,7 @@ public abstract class AbstractConnectionService
log.warn("globalRequest({})[{}, want-reply={}] failed ({}) to process: {}",
this, req, wantReply, e.getClass().getSimpleName(), e.getMessage());
if (debugEnabled) {
- log.debug("globalRequest(" + this + ")[" + req + ", want-reply=" + wantReply + "] failure details", e);
+ log.warn("globalRequest(" + this + ")[" + req + ", want-reply=" + wantReply + "] failure details", e);
}
result = RequestHandler.Result.ReplyFailure;
}
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 6718034..d951e16 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
@@ -625,13 +625,11 @@ public abstract class AbstractSession extends SessionHelper {
try {
startService(serviceName, buffer);
} catch (Throwable e) {
- if (debugEnabled) {
- log.debug("handleServiceRequest({}) Service {} rejected: {} = {}",
- this, serviceName, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("handleServiceRequest({}) Service {} rejected: {} = {}",
+ this, serviceName, e.getClass().getSimpleName(), e.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("handleServiceRequest(" + this + ") service=" + serviceName + " rejection details", e);
+ if (debugEnabled) {
+ log.warn("handleServiceRequest(" + this + ") service=" + serviceName + " rejection details", e);
}
disconnect(SshConstants.SSH2_DISCONNECT_SERVICE_NOT_AVAILABLE, "Bad service request: " + serviceName);
return false;
@@ -865,8 +863,10 @@ public abstract class AbstractSession extends SessionHelper {
try {
checkRekey();
} catch (GeneralSecurityException e) {
+ log.warn("writePacket({}) failed ({}) to check re-key: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("writePacket(" + this + ") rekey security exception details", e);
+ log.warn("writePacket(" + this + ") rekey security exception details", e);
}
throw ValidateUtils.initializeExceptionCause(
new ProtocolException("Failed (" + e.getClass().getSimpleName() + ")"
@@ -1804,7 +1804,7 @@ public abstract class AbstractSession extends SessionHelper {
log.warn("negotiate({}) failed ({}) to invoke disconnect handler due to mismatched KEX option={}: {}",
this, e.getClass().getSimpleName(), paramType, e.getMessage());
if (debugEnabled) {
- log.debug("negotiate(" + this + ") handler invocation exception details", e);
+ log.warn("negotiate(" + this + ") handler invocation exception details", e);
}
}
@@ -2041,8 +2041,10 @@ public abstract class AbstractSession extends SessionHelper {
try {
requestNewKeysExchange();
} catch (GeneralSecurityException e) {
+ log.warn("reExchangeKeys({}) failed ({}) to request new keys: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("reExchangeKeys(" + this + ") security exception details", e);
+ log.warn("reExchangeKeys(" + this + ") security exception details", e);
}
throw ValidateUtils.initializeExceptionCause(
new ProtocolException("Failed (" + e.getClass().getSimpleName() + ")"
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSessionIoHandler.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSessionIoHandler.java
index 6b4f56c..04f2e73 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSessionIoHandler.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/AbstractSessionIoHandler.java
@@ -62,13 +62,10 @@ public abstract class AbstractSessionIoHandler extends AbstractLoggingBean imple
try {
session.messageReceived(message);
} catch (Error e) {
+ log.error("messageReceived({}) failed {} to handle message: {}",
+ ioSession, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("messageReceived({}) failed {} to handle message: {}",
- ioSession, e.getClass().getSimpleName(), e.getMessage());
- }
-
- if (log.isTraceEnabled()) {
- log.trace("messageReceived(" + ioSession + ") message handling error details", e);
+ log.error("messageReceived(" + ioSession + ") message handling error details", e);
}
throw new RuntimeSshException(e);
}
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionHelper.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionHelper.java
index 7e021ba..1cb4c22 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionHelper.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionHelper.java
@@ -226,8 +226,9 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
* @see #checkIdleTimeout(long, long, long)
*/
protected TimeoutIndicator checkForTimeouts() throws IOException {
+ boolean debugEnabled = log.isDebugEnabled();
if ((!isOpen()) || isClosing() || isClosed()) {
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("checkForTimeouts({}) session closing", this);
}
return TimeoutIndicator.NONE;
@@ -238,7 +239,7 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
TimeoutStatus status =
(result == null) ? TimeoutStatus.NoTimeout : result.getStatus();
if ((status != null) && (status != TimeoutStatus.NoTimeout)) {
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("checkForTimeouts({}) already detected {}", this, result);
}
return result;
@@ -264,13 +265,13 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
// If disconnect handler throws an exception continue with the disconnect
log.warn("checkForTimeouts({}) failed ({}) to invoke disconnect handler to handle {}: {}",
this, e.getClass().getSimpleName(), result, e.getMessage());
- if (log.isDebugEnabled()) {
- log.debug("checkForTimeouts(" + this + ") disconnect handler exception details", e);
+ if (debugEnabled) {
+ log.warn("checkForTimeouts(" + this + ") disconnect handler exception details", e);
}
}
if (resetTimeout) {
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("checkForTimeouts({}) cancel {} due to handler intervention", this, result);
}
@@ -288,7 +289,7 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
return TimeoutIndicator.NONE;
}
- if (log.isDebugEnabled()) {
+ if (debugEnabled) {
log.debug("checkForTimeouts({}) disconnect - reason={}", this, result);
}
@@ -582,12 +583,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable e = GenericUtils.peelException(err);
+ log.error("Failed ({}) to announce session={} established: {}",
+ e.getClass().getSimpleName(), ioSession, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("Failed ({}) to announce session={} established: {}",
- e.getClass().getSimpleName(), ioSession, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("Session=" + ioSession + " establish failure details", e);
+ log.error("Session=" + ioSession + " establish failure details", e);
}
if (e instanceof Exception) {
throw (Exception) e;
@@ -612,12 +611,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable e = GenericUtils.peelException(err);
+ log.error("Failed ({}) to announce session={} created: {}",
+ e.getClass().getSimpleName(), ioSession, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("Failed ({}) to announce session={} created: {}",
- e.getClass().getSimpleName(), ioSession, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("Session=" + ioSession + " creation failure details", e);
+ log.error("Session=" + ioSession + " creation failure details", e);
}
if (e instanceof Exception) {
throw (Exception) e;
@@ -642,12 +639,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable e = GenericUtils.peelException(err);
+ log.error("signalPeerIdentificationReceived({}) Failed ({}) to announce peer={}: {}",
+ this, e.getClass().getSimpleName(), version, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("signalPeerIdentificationReceived({}) Failed ({}) to announce peer={}: {}",
- this, e.getClass().getSimpleName(), version, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("signalPeerIdentificationReceived(" + this + ")[" + version + "] failure details", e);
+ log.error("signalPeerIdentificationReceived(" + this + ")[" + version + "] failure details", e);
}
if (e instanceof Exception) {
throw (Exception) e;
@@ -680,12 +675,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable t = GenericUtils.peelException(err);
+ log.error("sendSessionEvent({})[{}] failed ({}) to inform listeners: {}",
+ this, event, t.getClass().getSimpleName(), t.getMessage());
if (log.isDebugEnabled()) {
- log.debug("sendSessionEvent({})[{}] failed ({}) to inform listeners: {}",
- this, event, t.getClass().getSimpleName(), t.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("sendSessionEvent(" + this + ")[" + event + "] listener inform details", t);
+ log.error("sendSessionEvent(" + this + ")[" + event + "] listener inform details", t);
}
if (t instanceof IOException) {
throw (IOException) t;
@@ -1084,20 +1077,19 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
IoWriteFuture packetFuture = writePacket(buffer, disconnectTimeoutMs, TimeUnit.MILLISECONDS);
packetFuture.addListener(future -> {
Throwable t = future.getException();
- if (log.isDebugEnabled()) {
- if (t == null) {
+ boolean debugEnabled = log.isDebugEnabled();
+ if (t == null) {
+ if (debugEnabled) {
log.debug("disconnect({}) operation successfully completed for reason={} [{}]",
SessionHelper.this, SshConstants.getDisconnectReasonName(reason), msg);
- } else {
- log.debug("disconnect({}) operation failed ({}) for reason={} [{}]: {}",
- SessionHelper.this, t.getClass().getSimpleName(),
- SshConstants.getDisconnectReasonName(reason), msg, t.getMessage());
}
- }
+ } else {
+ log.warn("disconnect({}) operation failed ({}) for reason={} [{}]: {}",
+ SessionHelper.this, t.getClass().getSimpleName(),
+ SshConstants.getDisconnectReasonName(reason), msg, t.getMessage());
- if (t != null) {
- if (log.isTraceEnabled()) {
- log.trace("disconnect(" + SessionHelper.this + ")"
+ if (debugEnabled) {
+ log.warn("disconnect(" + SessionHelper.this + ")"
+ " reason=" + SshConstants.getDisconnectReasonName(reason) + " failure details",
t);
}
@@ -1139,15 +1131,13 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable e = GenericUtils.peelException(err);
- if (log.isDebugEnabled()) {
- log.debug("signalDisconnect(" + this + ") signal session disconnect details", e);
- }
+ log.warn("signalDisconnect(" + this + ") signal session disconnect details", e);
- if (log.isTraceEnabled()) {
+ if (log.isDebugEnabled()) {
Throwable[] suppressed = e.getSuppressed();
if (GenericUtils.length(suppressed) > 0) {
for (Throwable s : suppressed) {
- log.trace("signalDisconnect(" + this + ") suppressed session disconnect signalling", s);
+ log.warn("signalDisconnect(" + this + ") suppressed session disconnect signalling", s);
}
}
}
@@ -1174,13 +1164,12 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
public void exceptionCaught(Throwable t) {
State curState = state.get();
// Ignore exceptions that happen while closing immediately
+ boolean debugEnabled = log.isDebugEnabled();
if ((!State.Opened.equals(curState)) && (!State.Graceful.equals(curState))) {
- if (log.isDebugEnabled()) {
- log.debug("exceptionCaught({}) ignore {} due to state={}, message='{}'",
- this, t.getClass().getSimpleName(), curState, t.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("exceptionCaught(" + this + ")[state=" + curState + "] ignored exception details", t);
+ log.warn("exceptionCaught({}) ignore {} due to state={}, message='{}'",
+ this, t.getClass().getSimpleName(), curState, t.getMessage());
+ if (debugEnabled) {
+ log.warn("exceptionCaught(" + this + ")[state=" + curState + "] ignored exception details", t);
}
return;
}
@@ -1196,10 +1185,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
this, curState, cause.getClass().getSimpleName(), cause.getMessage());
}
- if (log.isDebugEnabled()) {
- log.debug("exceptionCaught(" + this + ")[state=" + curState + "] details", t);
+ if (debugEnabled) {
+ log.warn("exceptionCaught(" + this + ")[state=" + curState + "] details", t);
if (cause != null) {
- log.debug("exceptionCaught(" + this + ")[state=" + curState + "] cause", cause);
+ log.warn("exceptionCaught(" + this + ")[state=" + curState + "] cause", cause);
}
}
@@ -1211,12 +1200,10 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
try {
disconnect(code, t.getMessage());
} catch (Throwable t2) {
- if (log.isDebugEnabled()) {
- log.debug("exceptionCaught({}) {} while disconnect with code={}: {}",
- this, t2.getClass().getSimpleName(), SshConstants.getDisconnectReasonName(code), t2.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("exceptionCaught(" + this + ")[code=" + SshConstants.getDisconnectReasonName(code) + "] disconnect exception details", t2);
+ log.warn("exceptionCaught({}) {} while disconnect with code={}: {}",
+ this, t2.getClass().getSimpleName(), SshConstants.getDisconnectReasonName(code), t2.getMessage());
+ if (debugEnabled) {
+ log.warn("exceptionCaught(" + this + ")[code=" + SshConstants.getDisconnectReasonName(code) + "] disconnect exception details", t2);
}
}
return;
@@ -1234,15 +1221,15 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
});
} catch (Throwable err) {
Throwable e = GenericUtils.peelException(err);
+ log.warn("signalExceptionCaught({}) {}: {}",
+ this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("signalExceptionCaught(" + this + ") signal session exception details", e);
- }
+ log.warn("signalExceptionCaught(" + this + ") signal session exception details", e);
- if (log.isTraceEnabled()) {
Throwable[] suppressed = e.getSuppressed();
if (GenericUtils.length(suppressed) > 0) {
for (Throwable s : suppressed) {
- log.trace("signalExceptionCaught(" + this + ") suppressed session exception signalling", s);
+ log.warn("signalExceptionCaught(" + this + ") suppressed session exception signalling", s);
}
}
}
@@ -1268,14 +1255,12 @@ public abstract class SessionHelper extends AbstractKexFactoryManager implements
log.warn("signalSessionClosed({}) {} while signal session closed: {}",
this, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("signalSessionClosed(" + this + ") signal session closed exception details", e);
- }
+ log.warn("signalSessionClosed(" + this + ") signal session closed exception details", e);
- if (log.isTraceEnabled()) {
Throwable[] suppressed = e.getSuppressed();
if (GenericUtils.length(suppressed) > 0) {
for (Throwable s : suppressed) {
- log.trace("signalSessionClosed(" + this + ") suppressed session closed signalling", s);
+ log.warn("signalSessionClosed(" + this + ") suppressed session closed signalling", s);
}
}
}
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionTimeoutListener.java b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionTimeoutListener.java
index de3d107..a5bc4ea 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionTimeoutListener.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/session/helpers/SessionTimeoutListener.java
@@ -84,12 +84,16 @@ public class SessionTimeoutListener
@Override
public void run() {
+ boolean debugEnabled = log.isDebugEnabled();
for (SessionHelper session : sessions) {
try {
session.checkForTimeouts();
} catch (Exception e) {
log.warn(e.getClass().getSimpleName() + " while checking"
+ " session=" + session + " timeouts: " + e.getMessage(), e);
+ if (debugEnabled) {
+ log.warn("Session " + session + " timeouts check exception details", e);
+ }
}
}
}
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/AbstractServerSession.java b/sshd-core/src/main/java/org/apache/sshd/server/session/AbstractServerSession.java
index 7da497a..7232935 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/AbstractServerSession.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/AbstractServerSession.java
@@ -265,7 +265,7 @@ public abstract class AbstractServerSession extends AbstractSession implements S
log.warn("startService({})[{}] failed ({}) to invoke disconnect handler: {}",
this, name, e.getClass().getSimpleName(), e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("startService(" + this + ")[" + name + "] disconnect handler invocation exception details", e);
+ log.warn("startService(" + this + ")[" + name + "] disconnect handler invocation exception details", e);
}
}
@@ -336,7 +336,7 @@ public abstract class AbstractServerSession extends AbstractSession implements S
log.warn("handleServiceAccept({}) failed ({}) to invoke disconnect handler of unknown service={}: {}",
this, e.getClass().getSimpleName(), serviceName, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("handleServiceAccept(" + this + ")[" + serviceName + "] handler invocation exception details", e);
+ log.warn("handleServiceAccept(" + this + ")[" + serviceName + "] handler invocation exception details", e);
}
}
@@ -374,7 +374,7 @@ public abstract class AbstractServerSession extends AbstractSession implements S
log.warn("resolveAvailableSignaturesProposal({}) failed ({}) to get key types: {}",
this, e.getClass().getSimpleName(), e.getMessage());
if (debugEnabled) {
- log.debug("resolveAvailableSignaturesProposal(" + this + ") fetch key types failure details", e);
+ log.warn("resolveAvailableSignaturesProposal(" + this + ") fetch key types failure details", e);
}
throw new RuntimeSshException(e);
@@ -430,7 +430,7 @@ public abstract class AbstractServerSession extends AbstractSession implements S
log.warn("readIdentification({}) failed ({}) to accept proxy metadata: {}",
this, t.getClass().getSimpleName(), t.getMessage());
if (debugEnabled) {
- log.debug("readIdentification(" + this + ") proxy metadata acceptance failure details", t);
+ log.warn("readIdentification(" + this + ") proxy metadata acceptance failure details", t);
}
if (t instanceof IOException) {
@@ -503,7 +503,7 @@ public abstract class AbstractServerSession extends AbstractSession implements S
log.warn("getHostKey({}) failed ({}) to load key of type={}[{}]: {}",
this, e.getClass().getSimpleName(), proposedKey, keyType, e.getMessage());
if (log.isDebugEnabled()) {
- log.debug("getHostKey(" + this + ") " + proposedKey + "[" + keyType + "] key load failure details", e);
+ log.warn("getHostKey(" + this + ") " + proposedKey + "[" + keyType + "] key load failure details", e);
}
throw new RuntimeSshException(e);
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
index 242267e..9847c4c 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/session/ServerUserAuthService.java
@@ -193,12 +193,10 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
return;
} catch (Exception e) {
// Continue
+ log.warn("process({}) Failed ({}) to authenticate using current method={}: {}",
+ session, e.getClass().getSimpleName(), currentAuth.getName(), e.getMessage());
if (debugEnabled) {
- log.debug("process({}) Failed ({}) to authenticate using current method={}: {}",
- session, e.getClass().getSimpleName(), currentAuth.getName(), e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("process(" + session + ") current authentication=" + currentAuth.getName() + " failure details", e);
+ log.warn("process(" + session + ") current authentication=" + currentAuth.getName() + " failure details", e);
}
}
}
@@ -276,7 +274,7 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
this.authUserName, username, this.authService, service,
nbAuthRequests, maxAuthRequests, e.getMessage());
if (debugEnabled) {
- log.debug("process(" + session + ") disconnect handler auth requests count invocation exception", e);
+ log.warn("process(" + session + ") disconnect handler auth requests count invocation exception", e);
}
}
@@ -304,7 +302,7 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
session, e.getClass().getSimpleName(),
this.authUserName, username, this.authService, service, e.getMessage());
if (debugEnabled) {
- log.debug("handleUserAuthRequestMessage(" + session + ") disconnect handler auth mismatched parameters invocation exception", e);
+ log.warn("handleUserAuthRequestMessage(" + session + ") disconnect handler auth mismatched parameters invocation exception", e);
}
}
@@ -347,12 +345,10 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
async.addListener(authenticated -> asyncAuth(SshConstants.SSH_MSG_USERAUTH_REQUEST, buffer, authenticated));
return false;
} catch (Exception e) {
+ log.warn("handleUserAuthRequestMessage({}) Failed ({}) to authenticate using factory method={}: {}",
+ session, e.getClass().getSimpleName(), method, e.getMessage());
if (debugEnabled) {
- log.debug("handleUserAuthRequestMessage({}) Failed ({}) to authenticate using factory method={}: {}",
- session, e.getClass().getSimpleName(), method, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("handleUserAuthRequestMessage(" + session + ") factory authentication=" + method + " failure details", e);
+ log.warn("handleUserAuthRequestMessage(" + session + ") factory authentication=" + method + " failure details", e);
}
}
@@ -367,7 +363,12 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
handleAuthenticationFailure(cmd, buffer);
}
} catch (Exception e) {
- log.warn("Error performing async authentication: {}", e.getMessage(), e);
+ ServerSession session = getServerSession();
+ log.warn("asyncAuth({}) Error ({}) performing async authentication via cmd={}: {}",
+ session, e.getClass().getSimpleName(), cmd, e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.warn("asyncAuth(" + session + ")[cmd=" + cmd + "] exception details", e);
+ }
}
}
@@ -411,7 +412,7 @@ public class ServerUserAuthService extends AbstractCloseable implements Service,
log.warn("handleAuthenticationSuccess({}@{}) failed ({}) to invoke disconnect handler due to {}/{} sessions count: {}",
username, session, e.getClass().getSimpleName(), currentSessionCount, maxSessionCount, e.getMessage());
if (debugEnabled) {
- log.debug("handleAuthenticationSuccess(" + username + "@" + session + ") invocation handler exception details", e);
+ log.warn("handleAuthenticationSuccess(" + username + "@" + session + ") invocation handler exception details", e);
}
}
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/x11/DefaultX11ForwardSupport.java b/sshd-core/src/main/java/org/apache/sshd/server/x11/DefaultX11ForwardSupport.java
index e5cd422..94506f7 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/x11/DefaultX11ForwardSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/x11/DefaultX11ForwardSupport.java
@@ -45,7 +45,6 @@ import org.apache.sshd.common.util.closeable.AbstractInnerCloseable;
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements X11ForwardSupport {
-
private final ConnectionService service;
private IoAcceptor acceptor;
@@ -80,7 +79,7 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
if (OsUtils.isWin32()) {
if (debugEnabled) {
log.debug("createDisplay(auth={}, cookie={}, screen={}) Windows O/S N/A",
- authenticationProtocol, authenticationCookie, screen);
+ authenticationProtocol, authenticationCookie, screen);
}
return null;
}
@@ -108,8 +107,8 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
} catch (BindException bindErr) {
if (debugEnabled) {
log.debug("createDisplay(auth={}, cookie={}, screen={}) failed ({}) to bind to address={}: {}",
- authenticationProtocol, authenticationCookie, screen,
- bindErr.getClass().getSimpleName(), addr, bindErr.getMessage());
+ authenticationProtocol, authenticationCookie, screen,
+ bindErr.getClass().getSimpleName(), addr, bindErr.getMessage());
}
addr = null;
@@ -125,13 +124,13 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
if (GenericUtils.isEmpty(boundAddresses)) {
if (debugEnabled) {
log.debug("createDisplay(auth={}, cookie={}, screen={}) closing - no more bound addresses",
- authenticationProtocol, authenticationCookie, screen);
+ authenticationProtocol, authenticationCookie, screen);
}
close();
} else {
if (debugEnabled) {
log.debug("createDisplay(auth={}, cookie={}, screen={}) closing - remaining bound addresses: {}",
- authenticationProtocol, authenticationCookie, screen, boundAddresses);
+ authenticationProtocol, authenticationCookie, screen, boundAddresses);
}
}
@@ -142,14 +141,18 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
int displayNumber = port - basePort;
String authDisplay = "unix:" + displayNumber + "." + screen;
try {
- Process p = new ProcessBuilder(XAUTH_COMMAND, "remove", authDisplay).start();
+ ProcessBuilder processBuilder = new ProcessBuilder(XAUTH_COMMAND, "remove", authDisplay);
+ Process p = processBuilder.start();
int result = p.waitFor();
if (debugEnabled) {
log.debug("createDisplay({}) {} remove result={}", authDisplay, XAUTH_COMMAND, result);
}
if (result == 0) {
- p = new ProcessBuilder(XAUTH_COMMAND, "add", authDisplay, authenticationProtocol, authenticationCookie).start();
+ processBuilder =
+ new ProcessBuilder(
+ XAUTH_COMMAND, "add", authDisplay, authenticationProtocol, authenticationCookie);
+ p = processBuilder.start();
result = p.waitFor();
if (debugEnabled) {
@@ -164,9 +167,9 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
return bindHost + ":" + displayNumber + "." + screen;
} catch (Throwable e) {
log.warn("createDisplay({}) failed ({}) run xauth: {}",
- authDisplay, e.getClass().getSimpleName(), e.getMessage());
+ authDisplay, e.getClass().getSimpleName(), e.getMessage());
if (debugEnabled) {
- log.debug("createDisplay(" + authDisplay + ") xauth failure details", e);
+ log.warn("createDisplay(" + authDisplay + ") xauth failure details", e);
}
return null;
}
@@ -180,7 +183,8 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
log.debug("sessionCreated({}) channel{}", session, channel);
}
this.service.registerChannel(channel);
- channel.open().verify(channel.getLongProperty(CHANNEL_OPEN_TIMEOUT_PROP, DEFAULT_CHANNEL_OPEN_TIMEOUT));
+ long openTimeout = channel.getLongProperty(CHANNEL_OPEN_TIMEOUT_PROP, DEFAULT_CHANNEL_OPEN_TIMEOUT);
+ channel.open().verify(openTimeout);
}
@Override
@@ -190,7 +194,7 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
if (channel != null) {
if (log.isDebugEnabled()) {
log.debug("sessionClosed({}) close channel={} - cause={}",
- session, channel, (cause == null) ? null : cause.getClass().getSimpleName());
+ session, channel, (cause == null) ? null : cause.getClass().getSimpleName());
}
// If exception signaled then close channel immediately
channel.close(cause != null);
@@ -214,11 +218,11 @@ public class DefaultX11ForwardSupport extends AbstractInnerCloseable implements
@Override
public void exceptionCaught(IoSession session, Throwable cause) throws Exception {
session.setAttribute(X11ForwardingExceptionMarker.class, cause);
+ log.error("exceptionCaught({}) {}: {}",
+ session, cause.getClass().getSimpleName(), cause.getMessage());
+
if (log.isDebugEnabled()) {
- log.debug("exceptionCaught({}) {}: {}", session, cause.getClass().getSimpleName(), cause.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("exceptionCaught(" + session + ") caught exception details", cause);
+ log.error("exceptionCaught(" + session + ") caught exception details", cause);
}
session.close(true);
}
diff --git a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
index 7987fda..efaf8c0 100644
--- a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
+++ b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaAcceptor.java
@@ -101,8 +101,10 @@ public class MinaAcceptor extends MinaService implements org.apache.sshd.common.
try {
listener.abortAcceptedConnection(this, local, remote, service, e);
} catch (Exception exc) {
+ log.warn("sessionCreated({})[{}] ignoring abort event failure={}: {}",
+ session, listener, exc.getClass().getSimpleName(), exc.getMessage());
if (log.isDebugEnabled()) {
- log.debug("sessionCreated(" + session + ") listener=" + listener + " ignoring abort event exception", exc);
+ log.warn("sessionCreated(" + session + ") listener=" + listener + " ignoring abort event exception", exc);
}
}
}
diff --git a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
index 620de98..d8e506a 100644
--- a/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
+++ b/sshd-mina/src/main/java/org/apache/sshd/common/io/mina/MinaConnector.java
@@ -98,8 +98,10 @@ public class MinaConnector extends MinaService implements org.apache.sshd.common
try {
listener.abortEstablishedConnection(this, local, context, remote, e);
} catch (Exception exc) {
+ log.warn("sessionCreated({}) ignoring abort connection failure={}: {}",
+ session, exc.getClass().getSimpleName(), exc.getMessage());
if (log.isDebugEnabled()) {
- log.debug("sessionCreated(" + session + ") listener=" + listener + " ignoring abort event exception", exc);
+ log.warn("sessionCreated(" + session + ") listener=" + listener + " ignoring abort event exception", exc);
}
}
}
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpDirEntryIterator.java b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpDirEntryIterator.java
index abf3a1d..dd04766 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpDirEntryIterator.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/SftpDirEntryIterator.java
@@ -177,8 +177,8 @@ public class SftpDirEntryIterator extends AbstractLoggingBean implements Iterato
try {
close();
} catch (IOException t) {
- if (log.isTraceEnabled()) {
- log.trace(t.getClass().getSimpleName() + " while close handle=" + handle
+ if (log.isDebugEnabled()) {
+ log.warn(t.getClass().getSimpleName() + " while close handle=" + handle
+ " due to " + e.getClass().getSimpleName() + " [" + e.getMessage() + "]"
+ ": " + t.getMessage());
}
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/fs/SftpFileSystemProvider.java b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/fs/SftpFileSystemProvider.java
index 5acf6da..0e58138 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/fs/SftpFileSystemProvider.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/fs/SftpFileSystemProvider.java
@@ -267,7 +267,7 @@ public class SftpFileSystemProvider extends FileSystemProvider {
session.close();
} catch (IOException t) {
if (log.isDebugEnabled()) {
- log.debug("Failed (" + t.getClass().getSimpleName() + ")"
+ log.warn("Failed (" + t.getClass().getSimpleName() + ")"
+ " to close session for new file system on " + host + ":" + port
+ " due to " + e.getClass().getSimpleName() + "[" + e.getMessage() + "]"
+ ": " + t.getMessage());
@@ -293,7 +293,8 @@ public class SftpFileSystemProvider extends FileSystemProvider {
return fileSystem;
}
- protected SftpVersionSelector resolveSftpVersionSelector(URI uri, SftpVersionSelector defaultSelector, PropertyResolver resolver) {
+ protected SftpVersionSelector resolveSftpVersionSelector(
+ URI uri, SftpVersionSelector defaultSelector, PropertyResolver resolver) {
String preference = resolver.getString(VERSION_PARAM);
if (GenericUtils.isEmpty(preference)) {
return defaultSelector;
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java
index 468610a..2a00052 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/client/subsystem/sftp/impl/SimpleSftpClientImpl.java
@@ -102,13 +102,11 @@ public class SimpleSftpClientImpl extends AbstractLoggingBean implements SimpleS
try {
client.close();
} catch (Exception t) {
- if (log.isDebugEnabled()) {
- log.debug("createSftpClient({}) failed ({}) to close client: {}",
- session, t.getClass().getSimpleName(), t.getMessage());
- }
+ log.warn("createSftpClient({}) failed ({}) to close client: {}",
+ session, t.getClass().getSimpleName(), t.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("createSftpClient(" + session + ") client close failure details", t);
+ if (log.isDebugEnabled()) {
+ log.warn("createSftpClient(" + session + ") client close failure details", t);
}
err = GenericUtils.accumulateException(err, t);
}
@@ -119,18 +117,16 @@ public class SimpleSftpClientImpl extends AbstractLoggingBean implements SimpleS
// This point is reached if error occurred
log.warn("createSftpClient({}) failed ({}) to create session: {}",
- session, err.getClass().getSimpleName(), err.getMessage());
+ session, err.getClass().getSimpleName(), err.getMessage());
try {
session.close();
} catch (Exception e) {
- if (log.isDebugEnabled()) {
- log.debug("createSftpClient({}) failed ({}) to close session: {}",
- session, e.getClass().getSimpleName(), e.getMessage());
- }
+ log.warn("createSftpClient({}) failed ({}) to close session: {}",
+ session, e.getClass().getSimpleName(), e.getMessage());
- if (log.isTraceEnabled()) {
- log.trace("createSftpClient(" + session + ") session close failure details", e);
+ if (log.isDebugEnabled()) {
+ log.warn("createSftpClient(" + session + ") session close failure details", e);
}
err = GenericUtils.accumulateException(err, e);
}
@@ -152,9 +148,9 @@ public class SimpleSftpClientImpl extends AbstractLoggingBean implements SimpleS
try {
result = method.invoke(client, args);
} catch (Throwable t) {
- if (log.isTraceEnabled()) {
- log.trace("invoke(SftpClient#{}) failed ({}) to execute: {}",
- name, t.getClass().getSimpleName(), t.getMessage());
+ if (log.isDebugEnabled()) {
+ log.warn("invoke(SftpClient#{}) failed ({}) to execute: {}",
+ name, t.getClass().getSimpleName(), t.getMessage());
}
err = GenericUtils.accumulateException(err, t);
}
@@ -165,8 +161,8 @@ public class SimpleSftpClientImpl extends AbstractLoggingBean implements SimpleS
session.close();
} catch (Throwable t) {
if (log.isDebugEnabled()) {
- log.debug("invoke(ClientSession#{}) failed ({}) to execute: {}",
- name, t.getClass().getSimpleName(), t.getMessage());
+ log.warn("invoke(ClientSession#{}) failed ({}) to execute: {}",
+ name, t.getClass().getSimpleName(), t.getMessage());
}
err = GenericUtils.accumulateException(err, t);
}
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
index 1380251..e53cb44 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/AbstractSftpSubsystemHelper.java
@@ -1466,12 +1466,10 @@ public abstract class AbstractSftpSubsystemHelper
try {
attrs = getAttributes(p, options);
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("doRealPath({}) - failed ({}) to retrieve attributes of {}: {}",
- session, e.getClass().getSimpleName(), p, e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("doRealPath(" + session + ")[" + p + "] attributes retrieval failure details", e);
+ log.warn("doRealPath({}) - failed ({}) to retrieve attributes of {}: {}",
+ session, e.getClass().getSimpleName(), p, e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.warn("doRealPath(" + session + ")[" + p + "] attributes retrieval failure details", e);
}
}
} else {
@@ -2414,6 +2412,7 @@ public abstract class AbstractSftpSubsystemHelper
Path file, int flags, Map<String, Object> current, LinkOption... options)
throws IOException {
boolean debugEnabled = log.isDebugEnabled();
+ ServerSession session = getServerSession();
NavigableMap<String, Object> attrs = null;
// Cannot use forEach because the attrs variable is not effectively final
for (Map.Entry<String, FileInfoExtractor<?>> re : SftpFileSystemAccessor.FILEATTRS_RESOLVERS.entrySet()) {
@@ -2434,15 +2433,13 @@ public abstract class AbstractSftpSubsystemHelper
if (debugEnabled) {
log.debug("resolveMissingFileAttributes({})[{}[{}]] replace {} with {}",
- getServerSession(), file, name, value, resolved);
+ session, file, name, value, resolved);
}
} catch (IOException e) {
- if (debugEnabled) {
- log.debug("resolveMissingFileAttributes({})[{}[{}]] failed ({}) to resolve missing value: {}",
- getServerSession(), file, name, e.getClass().getSimpleName(), e.getMessage());
- }
- if (log.isTraceEnabled()) {
- log.trace("resolveMissingFileAttributes(" + getServerSession() + ")"
+ log.warn("resolveMissingFileAttributes({})[{}[{}]] failed ({}) to resolve missing value: {}",
+ session, file, name, e.getClass().getSimpleName(), e.getMessage());
+ if (log.isDebugEnabled()) {
+ log.warn("resolveMissingFileAttributes(" + session + ")"
+ "[" + file + "[" + name + "]] missing value resolution failure details", e);
}
}
diff --git a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
index c9bfd97..2cbfc52 100644
--- a/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
+++ b/sshd-sftp/src/main/java/org/apache/sshd/server/subsystem/sftp/SftpSubsystem.java
@@ -279,7 +279,7 @@ public class SftpSubsystem
CloseableExecutorService executor = getExecutorService();
pendingFuture = executor.submit(this);
} catch (RuntimeException e) { // e.g., RejectedExecutionException
- log.error("Failed (" + e.getClass().getSimpleName() + ") to start command: " + e.toString(), e);
+ log.error("Failed (" + e.getClass().getSimpleName() + ") to start command: " + e.getMessage(), e);
throw new IOException(e);
}
}
@@ -324,7 +324,7 @@ public class SftpSubsystem
log.error("run({}) {} caught in SFTP subsystem: {}",
session, t.getClass().getSimpleName(), t.getMessage());
if (log.isDebugEnabled()) {
- log.debug("run(" + session + ") caught exception details", t);
+ log.error("run(" + session + ") caught exception details", t);
}
}
} finally {
@@ -1011,7 +1011,7 @@ public class SftpSubsystem
log.warn("destroy({}) Failed ({}) to announce destruction event: {}",
session, e.getClass().getSimpleName(), e.getMessage());
if (debugEnabled) {
- log.debug("destroy(" + session + ") destruction announcement failure details", e);
+ log.warn("destroy(" + session + ") destruction announcement failure details", e);
}
}
@@ -1043,7 +1043,7 @@ public class SftpSubsystem
}
} catch (IOException e) {
if (debugEnabled) {
- log.debug("destroy(" + session + ")"
+ log.warn("destroy(" + session + ")"
+ " failed (" + e.getClass().getSimpleName() + ")"
+ " to close file system: " + e.getMessage(), e);
}
[mina-sshd] 01/02: Access AbstractCommandSupport internal state
values via getters where applicable
Posted by lg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
lgoldstein pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mina-sshd.git
commit 001d2f67b6cbfd5422263c16ec8161977af1e8e6
Author: Lyor Goldstein <lg...@apache.org>
AuthorDate: Sun Apr 12 20:02:07 2020 +0300
Access AbstractCommandSupport internal state values via getters where applicable
---
.../server/command/AbstractCommandSupport.java | 23 ++++++++++++----------
.../org/apache/sshd/server/scp/ScpCommand.java | 14 +++++++------
2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/sshd-core/src/main/java/org/apache/sshd/server/command/AbstractCommandSupport.java b/sshd-core/src/main/java/org/apache/sshd/server/command/AbstractCommandSupport.java
index 03d1e3f..e63a79b 100644
--- a/sshd-core/src/main/java/org/apache/sshd/server/command/AbstractCommandSupport.java
+++ b/sshd-core/src/main/java/org/apache/sshd/server/command/AbstractCommandSupport.java
@@ -48,17 +48,18 @@ public abstract class AbstractCommandSupport
extends AbstractLoggingBean
implements Command, Runnable, ExecutorServiceCarrier, SessionAware,
SessionHolder<ServerSession>, ServerSessionHolder {
- protected final String command;
- protected InputStream in;
- protected OutputStream out;
- protected OutputStream err;
- protected ExitCallback callback;
- protected Environment environment;
- protected Future<?> cmdFuture;
protected volatile Thread cmdRunner;
protected CloseableExecutorService executorService;
protected boolean cbCalled;
- protected ServerSession serverSession;
+
+ private final String command;
+ private InputStream in;
+ private OutputStream out;
+ private OutputStream err;
+ private ExitCallback callback;
+ private Environment environment;
+ private Future<?> cmdFuture;
+ private ServerSession serverSession;
protected AbstractCommandSupport(String command, CloseableExecutorService executorService) {
this.command = command;
@@ -144,9 +145,11 @@ public abstract class AbstractCommandSupport
@Override
public void start(ChannelSession channel, Environment env) throws IOException {
environment = env;
+
+ String cmd = getCommand();
try {
if (log.isDebugEnabled()) {
- log.debug("start({}) starting runner for command={}", channel, command);
+ log.debug("start({}) starting runner for command={}", channel, cmd);
}
CloseableExecutorService executors = getExecutorService();
@@ -157,7 +160,7 @@ public abstract class AbstractCommandSupport
} catch (RuntimeException e) { // e.g., RejectedExecutionException
log.error("start(" + channel + ")"
+ " Failed (" + e.getClass().getSimpleName() + ")"
- + " to start command=" + command + ": " + e.getMessage(), e);
+ + " to start command=" + cmd + ": " + e.getMessage(), e);
throw new IOException(e);
}
}
diff --git a/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommand.java b/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommand.java
index c4a2317..5a60137 100644
--- a/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommand.java
+++ b/sshd-scp/src/main/java/org/apache/sshd/server/scp/ScpCommand.java
@@ -30,6 +30,7 @@ import org.apache.sshd.common.util.GenericUtils;
import org.apache.sshd.common.util.threads.CloseableExecutorService;
import org.apache.sshd.common.util.threads.ThreadUtils;
import org.apache.sshd.server.Environment;
+import org.apache.sshd.server.ExitCallback;
import org.apache.sshd.server.channel.ChannelSession;
import org.apache.sshd.server.command.AbstractFileSystemCommand;
import org.apache.sshd.server.session.ServerSession;
@@ -41,9 +42,7 @@ import org.apache.sshd.server.session.ServerSession;
*
* @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
*/
-public class ScpCommand
- extends AbstractFileSystemCommand {
-
+public class ScpCommand extends AbstractFileSystemCommand {
protected final int sendBufferSize;
protected final int receiveBufferSize;
protected final ScpFileOpener opener;
@@ -159,7 +158,9 @@ public class ScpCommand
int exitValue = ScpHelper.OK;
String exitMessage = null;
ServerSession session = getServerSession();
- ScpHelper helper = new ScpHelper(session, in, out, fileSystem, opener, listener);
+ String command = getCommand();
+ ScpHelper helper = new ScpHelper(
+ session, getInputStream(), getOutputStream(), fileSystem, opener, listener);
try {
if (optT) {
helper.receive(helper.resolveLocalPath(path), optR, optD, optP, receiveBufferSize);
@@ -199,6 +200,7 @@ public class ScpCommand
log.error("run(" + session + ")[" + command + "] command execution failure details", e);
}
} finally {
+ ExitCallback callback = getExitCallback();
if (callback != null) {
callback.onExit(exitValue, GenericUtils.trimToEmpty(exitMessage));
}
@@ -210,11 +212,11 @@ public class ScpCommand
log.debug("writeCommandResponseMessage({}) command='{}', exit-status={}: {}",
getServerSession(), command, exitValue, exitMessage);
}
- ScpHelper.sendResponseMessage(out, exitValue, exitMessage);
+ ScpHelper.sendResponseMessage(getOutputStream(), exitValue, exitMessage);
}
@Override
public String toString() {
- return getClass().getSimpleName() + "(" + getSession() + ") " + command;
+ return super.toString() + "[" + getSession() + "]";
}
}
\ No newline at end of file