I'm seeing a pretty consistent issue when stopping Tomcat6, when running as a Windows service.
Repro: From the cmd prompt type net stop tomcat6 Results: The Apache Tomcat service is stopping........ The Apache Tomcat service could not be stopped. Notes: 1. Platform details: a. Windows 2008 Server SP1 (64-bit) b. Tomcat 6 build 18 (both with/without the native DLL = same issue) c. JRE 1.6.0_12 2. I could find no events nor tomcat/catalina logs with a hint as to root cause, nor did I bear fruit with a search through the FAQs, Google, etc. 3. I tried to enable verbose tomcat logging as per http://tomcat.apache.org/tomcat-6.0-doc/logging.html but when the issue occurs, the pertinent info isn't as yet written to disk, since it appears log4j flushes only during the log rollover. 4. The only workaround I have at this point is to kill the tomcat6.exe process manually. 5. A thread dump is below if that helps. Has anyone seen this before? Thanks, Matt Java HotSpot(TM) 64-Bit Server VM[nyc-bvtsp-tom:5005] (Suspended) Daemon Thread [http-443-1] (Suspended) Object.wait(long) line: not available [native method] JIoEndpoint$Worker(Object).wait() line: 485 JIoEndpoint$Worker.await() line: 416 JIoEndpoint$Worker.run() line: 442 Thread.run() line: 619 Daemon Thread [http-80-1] (Suspended) Object.wait(long) line: not available [native method] JIoEndpoint$Worker(Object).wait() line: 485 JIoEndpoint$Worker.await() line: 416 JIoEndpoint$Worker.run() line: 442 Thread.run() line: 619 Daemon Thread [http-443-Acceptor-0] (Suspended) Thread.sleep(long) line: not available [native method] JIoEndpoint$Acceptor.run() line: 302 Thread.run() line: 619 Daemon Thread [http-80-Acceptor-0] (Suspended) Thread.sleep(long) line: not available [native method] JIoEndpoint$Acceptor.run() line: 302 Thread.run() line: 619 Daemon System Thread [Attach Listener] (Suspended) Daemon System Thread [Signal Dispatcher] (Suspended) Daemon System Thread [Finalizer] (Suspended) Object.wait(long) line: not available [native method] ReferenceQueue<T>.remove(long) line: 116 ReferenceQueue<T>.remove() line: 132 Finalizer$FinalizerThread.run() line: 159 Daemon System Thread [Reference Handler] (Suspended) Object.wait(long) line: not available [native method] Reference$Lock(Object).wait() line: 485 Reference$ReferenceHandler.run() line: 116 Thread [main] (Suspended)