On October 25, 2019 9:27:21 AM UTC, Behrang Saeedzadeh <behran...@gmail.com> 
wrote:
>From Tomcat Embedded Core 9.0.26:
>
>@Override
>protected void doClose() {
>    if (log.isDebugEnabled()) {
>        log.debug("Calling [" + getEndpoint() + "].closeSocket([" +
>this + "])", new Exception());
>    }
>
>Which will log something like:
>
>DEBUG [http-nio-8080-exec-2]
>    org.apache.tomcat.util.net.NioEndpoint
>        Calling [org.apache.tomcat.util.net.NioEndpoint@654c1a54
>].closeSocket([org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@39e9d240
>:org.apache.tomcat.util.net.NioChannel@78019ed5:java.nio.channels.SocketChannel[connected
>local=/127.0.0.1:8080 remote=/127.0.0.1:39988]])
>
>java.lang.Exception: null
>at
>org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doClose(NioEndpoint.java:1165)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at
>org.apache.tomcat.util.net.SocketWrapperBase.close(SocketWrapperBase.java:394)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at
>org.apache.tomcat.util.net.NioEndpoint$Poller.cancelledKey(NioEndpoint.java:667)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at
>org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1592)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at
>org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at
>java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>[na:1.8.0_212]
>at
>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>[na:1.8.0_212]
>at
>org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>[tomcat-embed-core-9.0.26.jar:9.0.26]
>at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
>
>To print the stack trace next to the message?

Yes. So the debug message shows what called close().

> Every time I turn on
>debug
>logging this exception catches me by surprise. Why not only print the
>stack
>trace next using
>org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace for
>example?

Because that adds an entire library as a dependency to support a single debug 
message. And new Exception() gives what we need without that dependency. Would 
adding a message to the exception such as "Tracing caller" make things clearer?

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to