On 22/04/2016 15:18, Konstantin Kolinko wrote: > 2016-04-22 16:24 GMT+03:00 <ma...@apache.org>: >> Author: markt >> Date: Fri Apr 22 13:24:13 2016 >> New Revision: 1740523 >> >> URL: http://svn.apache.org/viewvc?rev=1740523&view=rev >> Log: >> Expand checks for proper WebSocket shutdown >> >> Modified: >> tomcat/tc7.0.x/trunk/ (props changed) >> >> tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java >> >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/WebSocketBaseTest.java >> >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/server/TestClose.java >> >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/server/TestCloseBug58264.java >> >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServer.java >> >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java >> > >> Modified: >> tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java >> URL: >> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java?rev=1740523&r1=1740522&r2=1740523&view=diff >> ============================================================================== >> --- >> tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java >> (original) >> +++ >> tomcat/tc7.0.x/trunk/java/org/apache/tomcat/websocket/BackgroundProcessManager.java >> Fri Apr 22 13:24:13 2016 >> @@ -108,6 +108,17 @@ public class BackgroundProcessManager { >> } >> >> >> + void shutdown() { >> + synchronized (processesLock) { >> + processes.clear(); >> + if (wsBackgroundThread != null) { >> + wsBackgroundThread.halt(); >> + wsBackgroundThread = null; >> + } >> + } >> + } >> + >> + >> private static class WsBackgroundThread extends Thread { >> >> private final BackgroundProcessManager manager; >> >> Modified: >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/WebSocketBaseTest.java >> URL: >> http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/WebSocketBaseTest.java?rev=1740523&r1=1740522&r2=1740523&view=diff >> ============================================================================== >> --- >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/WebSocketBaseTest.java >> (original) >> +++ >> tomcat/tc7.0.x/trunk/test/org/apache/tomcat/websocket/WebSocketBaseTest.java >> Fri Apr 22 13:24:13 2016 >> @@ -41,5 +41,8 @@ public abstract class WebSocketBaseTest >> } >> >> Assert.assertEquals(0, >> BackgroundProcessManager.getInstance().getProcessCount()); >> + >> + // Ensure the next test is not affected >> + BackgroundProcessManager.getInstance().shutdown(); >> } >> } > > The above shutdown() call won't help. In case of a failure the Assert > throws an Assert[ion?]Error and shutdown() method won't be called. > > It can be moved into a separate method annotated with @After, or into > a finally block.
Thanks for catching that. I'll go with the finally block so execution order is clear. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org