When I try to shut down the application in the IDE console by 'q' application 
doesn't stopped. 

Thread Dump in attachments.

Console log:

dec 08, 2022 12:59:21 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio2-8080"]
dec 08, 2022 12:59:21 PM org.apache.tomcat.util.net.Nio2Endpoint bind
WARNING: The NIO2 connector requires an exclusive executor to operate properly 
on shutdown
dec 08, 2022 12:59:48 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Tomcat]
dec 08, 2022 12:59:48 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/9.0.65]
dec 08, 2022 12:59:48 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio2-8080"]
dec 08, 2022 12:59:49 PM org.apache.catalina.startup.ContextConfig 
getDefaultWebXmlFragment
INFO: No global web.xml found
application started in SHELL mode
Press 'q' key to exit.
q
dec  08, 2022 1:18:18 PM org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-nio2-8080"]
dec 08, 2022 1:18:18 PM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service [Tomcat]
dec 08, 2022 1:18:18 PM org.apache.coyote.AbstractProtocol stop
INFO: Stopping ProtocolHandler ["http-nio2-8080"] I think this happens because 
we use http nio2 protocol, and we personally create an executor for him.
private void configureExecutor(final Connector connector, final String 
connectorName) { final StandardThreadExecutor executor = new 
TomcatThreadExecutor(); executor.setName(connectorName); final 
AbstractProtocol<?> protocol = (AbstractProtocol<?>) 
connector.getProtocolHandler(); String namePrefix = protocol.getName(); 
namePrefix = namePrefix.substring(1, namePrefix.length() - 1); 
executor.setNamePrefix(namePrefix + "-exec-"); 
executor.setMaxThreads(protocol.getMaxThreads()); 
executor.setMinSpareThreads(protocol.getMinSpareThreads()); 
tomcat.getEngine().getService().addExecutor(executor); 
protocol.setExecutor(executor); }
.
2022-12-08 12:08:01
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.231-b11 mixed mode):

"DestroyJavaVM" #123 prio=5 os_prio=0 tid=0x00000000207a4800 nid=0x48dc waiting 
on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Catalina-utility-2" #98 prio=1 os_prio=-2 tid=0x000000001c3dd800 nid=0x4d00 
waiting on condition [0x000000002418e000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000081fa93d0> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1081)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

"Catalina-utility-1" #97 prio=1 os_prio=-2 tid=0x000000001c3e0800 nid=0x612c 
waiting on condition [0x000000002408e000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x0000000081fa93d0> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
        at 
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

"Connection evictor" #95 daemon prio=5 os_prio=0 tid=0x000000001e76f800 
nid=0x309c waiting on condition [0x0000000023c8f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at 
org.apache.http.impl.client.IdleConnectionEvictor$1.run(IdleConnectionEvictor.java:66)
        at java.lang.Thread.run(Thread.java:748)

"Thread-22" #91 daemon prio=5 os_prio=0 tid=0x000000001e76a000 nid=0x6b4 
runnable [0x00000000233be000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-21" #90 daemon prio=5 os_prio=0 tid=0x000000001e769800 nid=0x3998 
runnable [0x00000000232bf000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-20" #89 daemon prio=5 os_prio=0 tid=0x000000001e765000 nid=0x6098 
runnable [0x00000000231bf000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-19" #88 daemon prio=5 os_prio=0 tid=0x000000001e762000 nid=0x4034 
runnable [0x00000000230be000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-18" #87 daemon prio=5 os_prio=0 tid=0x000000001e767000 nid=0x58cc 
runnable [0x0000000022cbe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-17" #86 daemon prio=5 os_prio=0 tid=0x000000001e766800 nid=0x4d88 
runnable [0x0000000022abe000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-16" #85 daemon prio=5 os_prio=0 tid=0x000000001e768800 nid=0x35dc 
runnable [0x00000000229bf000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-15" #84 daemon prio=5 os_prio=0 tid=0x000000001e761000 nid=0x5d30 
runnable [0x00000000228be000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at 
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Thread-14" #83 daemon prio=5 os_prio=0 tid=0x000000001e768000 nid=0x9e0 
runnable [0x00000000227bf000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.Iocp.getQueuedCompletionStatus(Native Method)
        at sun.nio.ch.Iocp.access$300(Iocp.java:46)
        at sun.nio.ch.Iocp$EventHandlerTask.run(Iocp.java:333)
        at java.lang.Thread.run(Thread.java:748)

"mysql-cj-abandoned-connection-cleanup" #46 daemon prio=5 os_prio=0 
tid=0x000000001c3e8000 nid=0x4dc4 in Object.wait() [0x0000000022fbf000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x000000008126dec8> (a java.lang.ref.ReferenceQueue$Lock)
        at 
com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:80)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

"Service Thread" #13 daemon prio=9 os_prio=0 tid=0x000000001a074000 nid=0x5c74 
runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #12 daemon prio=9 os_prio=2 tid=0x000000001a025800 
nid=0x4b78 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #11 daemon prio=9 os_prio=2 tid=0x000000001a022000 
nid=0x1cf8 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #10 daemon prio=9 os_prio=2 tid=0x000000001a021000 
nid=0x1af8 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #9 daemon prio=9 os_prio=2 tid=0x000000001a019800 
nid=0x5d40 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Command Reader" #8 daemon prio=10 os_prio=0 tid=0x0000000019f0c000 
nid=0x5f14 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Event Helper Thread" #7 daemon prio=10 os_prio=0 tid=0x0000000019f0a800 
nid=0x63ec runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Transport Listener: dt_socket" #6 daemon prio=10 os_prio=0 
tid=0x0000000019eff000 nid=0xc3c runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x0000000019ef3800 nid=0x4d98 
waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x0000000019ef2800 
nid=0x2bd4 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000019ee1000 nid=0x581c in 
Object.wait() [0x000000001a4bf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
        - locked <0x0000000080644780> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)

"Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x00000000180fd800 
nid=0x6310 in Object.wait() [0x000000001a3bf000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
        - locked <0x00000000806447d8> (a java.lang.ref.Reference$Lock)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"VM Thread" os_prio=2 tid=0x00000000180f9800 nid=0x1728 runnable 

"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000002fb8800 nid=0x6178 
runnable 

"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000002fba000 nid=0x4d58 
runnable 

"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002fbb800 nid=0xbcc 
runnable 

"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002fbe000 nid=0x6270 
runnable 

"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x0000000002fc0800 nid=0x3454 
runnable 

"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x0000000002fc1800 nid=0x6148 
runnable 

"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x0000000002fc4800 nid=0x406c 
runnable 

"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x0000000002fc6000 nid=0x5dc8 
runnable 

"VM Periodic Task Thread" os_prio=2 tid=0x000000001a118000 nid=0x6370 waiting 
on condition 

JNI global references: 8840


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

Reply via email to