Bug 53342

Summary: If starting immediately after Tomcat stop fail, BindException will throw.
Product: Tomcat 7 Reporter: Keiichi Fujino <kfujino>
Component: CatalinaAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: trunk   
Target Milestone: ---   
Hardware: All   
OS: All   
Attachments: patch against trunk

Description Keiichi Fujino 2012-06-01 09:34:18 UTC
e.g.
When Context#stop throw LifecycleException, the main thread stops, 
but startStopThreads of Host/Engine will remain for a while. 
Because, startStopThreads is not a demon thread. 

As a result, 
even if a main thread stops, Acceptor Threads of 8080/8009 is not stopped. 

keepAliveTime for 10 seconds is set up now. 
===
startStopExecutor = new ThreadPoolExecutor(
            getStartStopThreadsInternal(),
            getStartStopThreadsInternal(), 10, TimeUnit.SECONDS,
            startStopQueue);
===

Therefore, in order to avoid BindException, the waiting for 10 seconds is required. 

I think that I need to make startStopThreads into a demon thread. 

Best Regards.
Comment 1 Keiichi Fujino 2012-06-01 09:35:36 UTC
Created attachment 28869 [details]
patch against trunk
Comment 2 Keiichi Fujino 2012-06-01 09:49:31 UTC
Fixed in trunk and 7.0.x. Will be in 7.0.28.