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 2018/08/01 18:01:33 UTC

mina-sshd git commit: [SSHD-838] Remove LoggingUtils#logExceptionStackTrace

Repository: mina-sshd
Updated Branches:
  refs/heads/master a4bb50233 -> f17bf3852


[SSHD-838] Remove LoggingUtils#logExceptionStackTrace


Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/f17bf385
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/f17bf385
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/f17bf385

Branch: refs/heads/master
Commit: f17bf3852e27b67f86fbd0d4091e788deb4202ba
Parents: a4bb502
Author: Bryan Turner <bt...@atlassian.com>
Authored: Wed Aug 1 21:05:34 2018 +0300
Committer: Lyor Goldstein <ly...@gmail.com>
Committed: Wed Aug 1 21:06:06 2018 +0300

----------------------------------------------------------------------
 .../sshd/common/io/nio2/Nio2Acceptor.java       |   6 +-
 .../apache/sshd/common/io/nio2/Nio2Session.java |   6 +-
 .../sshd/common/util/logging/LoggingUtils.java  | 114 -------------------
 3 files changed, 6 insertions(+), 120 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f17bf385/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
index 73a3c5f..1c63b54 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/io/nio2/Nio2Acceptor.java
@@ -31,14 +31,12 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
 
 import org.apache.sshd.common.Closeable;
 import org.apache.sshd.common.FactoryManager;
 import org.apache.sshd.common.io.IoAcceptor;
 import org.apache.sshd.common.io.IoHandler;
 import org.apache.sshd.common.util.ValidateUtils;
-import org.apache.sshd.common.util.logging.LoggingUtils;
 
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
@@ -289,7 +287,9 @@ public class Nio2Acceptor extends Nio2Service implements IoAcceptor {
 
             log.warn("Caught {} while accepting incoming connection from {}: {}",
                 exc.getClass().getSimpleName(), address, exc.getMessage());
-            LoggingUtils.logExceptionStackTrace(log, Level.WARNING, exc);
+            if (log.isDebugEnabled()) {
+                log.debug("Incoming connection from " + address + " failure details", exc);
+            }
             return true;
         }
     }

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f17bf385/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 ec34404..9a9ef4a 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
@@ -32,7 +32,6 @@ import java.util.concurrent.LinkedTransferQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.logging.Level;
 
 import org.apache.sshd.common.FactoryManager;
 import org.apache.sshd.common.RuntimeSshException;
@@ -44,7 +43,6 @@ import org.apache.sshd.common.util.GenericUtils;
 import org.apache.sshd.common.util.Readable;
 import org.apache.sshd.common.util.buffer.Buffer;
 import org.apache.sshd.common.util.closeable.AbstractCloseable;
-import org.apache.sshd.common.util.logging.LoggingUtils;
 
 /**
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
@@ -255,7 +253,9 @@ public class Nio2Session extends AbstractCloseable implements IoSession {
         } catch (IOException e) {
             log.info("doCloseImmediately({}) {} caught while closing socket={}: {}",
                     this, e.getClass().getSimpleName(), socket, e.getMessage());
-            LoggingUtils.logExceptionStackTrace(log, Level.INFO, e);
+            if (debugEnabled) {
+                log.debug("doCloseImmediately(" + this + ") socket=" + socket + " close failure details", e);
+            }
         }
 
         service.sessionClosed(this);

http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/f17bf385/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java b/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
index 7674471..8b3154a 100644
--- a/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
+++ b/sshd-core/src/main/java/org/apache/sshd/common/util/logging/LoggingUtils.java
@@ -19,7 +19,6 @@
 
 package org.apache.sshd.common.util.logging;
 
-import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
@@ -30,7 +29,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.TreeMap;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 import java.util.logging.Level;
@@ -44,14 +42,6 @@ import org.slf4j.Logger;
  * @author <a href="mailto:dev@mina.apache.org">Apache MINA SSHD Project</a>
  */
 public final class LoggingUtils {
-    /**
-     * Default value used for {@link #logExceptionStackTrace(Logger, Level, Throwable) logExceptionStackTrace}
-     * unless {@link #setDefaultStackTraceLoggingDepth(int) overridden}
-     */
-    public static final int DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE = Byte.SIZE;
-
-    private static final AtomicInteger DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE_HOLDER =
-        new AtomicInteger(DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE);
 
     private LoggingUtils() {
         throw new UnsupportedOperationException("No instance");
@@ -555,108 +545,4 @@ public final class LoggingUtils {
             }
         };
     }
-
-    /**
-     * Logs the stack trace of the exception up to {@link #getDefaultStackTraceLoggingDepth() default depth}
-     * or available stack trace elements.
-     *
-     * @param logger The {@link Logger} instance to log the information
-     * @param level The logging {@link Level} to use
-     * @param t The {@link Throwable} data to write - ignored if {@code null}
-     */
-    public static void logExceptionStackTrace(Logger logger, Level level, Throwable t) {
-        logExceptionStackTrace(logger, level, t, getDefaultStackTraceLoggingDepth());
-    }
-
-    /**
-     * Logs the stack trace of the exception up to specified depth or available stack trace elements.
-     *
-     * @param logger The {@link Logger} instance to log the information
-     * @param level The logging {@link Level} to use
-     * @param t The {@link Throwable} data to write - ignored if {@code null}
-     * @param maxDepth Maximum stack trace elements to log - if non-positive then nothing is logged
-     */
-    public static void logExceptionStackTrace(Logger logger, Level level, Throwable t, int maxDepth) {
-        if ((t == null) || (maxDepth <= 0) || (!isLoggable(logger, level))) {
-            return;
-        }
-
-        Consumer<String> executor = loggingClosure(logger, level);
-        logExceptionStackTrace(t, maxDepth, executor);
-    }
-
-    /**
-     * Logs the stack trace of the exception up to specified depth or available stack trace elements.
-     *
-     * @param t The {@link Throwable} data to write - ignored if {@code null}
-     * @param maxDepth Maximum stack trace elements to log - if non-positive then nothing is logged
-     * @param executor The {@link Consumer} invoked for each formatted stack trace element
-     */
-    public static void logExceptionStackTrace(Throwable t, int maxDepth, Consumer<? super String> executor) {
-        if ((t == null) || (maxDepth <= 0) || (executor == null)) {
-            return;
-        }
-        StackTraceElement[] elements = t.getStackTrace();
-        int numElements = GenericUtils.length(elements);
-        StringBuilder workBuf = new StringBuilder(Byte.MAX_VALUE);
-        for (int index = 0, maxElements = Math.min(maxDepth, numElements); index < maxElements; index++) {
-            StackTraceElement ste = elements[index];
-            workBuf.setLength(0); // re-use
-            try {
-                appendStackTraceElement(workBuf.append("    at "), ste);
-            } catch (IOException e) {
-                throw new RuntimeException("Unexpected failure (" + e.getClass().getSimpleName() + ")" + " to append stack-trace-element=" + ste + ": " + e.getMessage(), e);
-            }
-            executor.accept(workBuf.toString());
-        }
-    }
-
-    /**
-     * @return The default value used by {@link #logExceptionStackTrace(Logger, Level, Throwable)}
-     */
-    public static int getDefaultStackTraceLoggingDepth() {
-        return Math.max(DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE_HOLDER.get(), DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE);
-    }
-
-    /**
-     * @param value The value to set - <B>Note:</B> the effective value is the <U>maximum</U>
-     * between it and {@value #DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE}
-     */
-    public static void setDefaultStackTraceLoggingDepth(int value) {
-        DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE_HOLDER.set(Math.max(value, DEFAULT_STACK_TRACE_LOGGING_DEPTH_VALUE));
-    }
-
-    /**
-     * Generates a result very similar to {@link StackTraceElement#toString()}
-     *
-     * @param <A> The {@link Appendable} target type
-     * @param sb The target appender
-     * @param ste The {@link StackTraceElement} to append - ignored if {@code null}
-     * @return The updated appender instance
-     * @throws IOException If failed to append the data
-     */
-    public static <A extends Appendable> A appendStackTraceElement(A sb, StackTraceElement ste) throws IOException {
-        if (ste == null) {
-            return sb;
-        }
-
-        sb.append(ste.getClassName()).append('.').append(ste.getMethodName());
-        if (ste.isNativeMethod()) {
-            sb.append("(Native Method)");
-            return sb;
-        }
-
-        sb.append('(');
-
-        String fileName = ste.getFileName();
-        sb.append(GenericUtils.isEmpty(fileName) ? "Unknown Source" : fileName);
-
-        int lineNumber = ste.getLineNumber();
-        if (lineNumber >= 0) {
-            sb.append(':').append(Integer.toString(lineNumber));
-        }
-        sb.append(')');
-
-        return sb;
-    }
 }