Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

SEC-1104: Server created by ApacheDSContainer is shutdown twice, causing a hang #1354

spring-issuemaster opened this Issue Feb 9, 2009 · 3 comments


None yet
1 participant

Brian Topping(Migrated from SEC-1104) said:

I have a default ApacheDS server launched for testing via element in my spring config. This is inside a webapp, and the context is loaded through a servlet context listener (if that makes any difference).

ApacheDSContainer implements both Lifecycle and DisposableBean. Both destroy methods get called, but neither checks the ‘running’ field before trying to shut down the ApacheDS server. The first shutdown works, but since the server is contacted over a socket, the second attempt hangs until the socket times out.

The easy fix is to just check the ‘running’ field in the stop() method and don’t do anything if the server isn’t running.

Brian Topping said:

On further inspection, this problem was coincidental to starting to use the ApacheDSContainer, not causal. I believe there is a problem calling the stop method twice, although after cleaning up the code, my issue remains. So this could be set to a low priority or closed, although I will attach the patch here regardless.

Brian Topping said:

Patch for ApacheDSContainer.java to clean up lifecycle semantics

Luke Taylor said:

Thanks for the report. I've added a check of the "running" flag in the stop() method but I've retained the Lifecycle interface (unlike your patch). The same bean instance could potentially be started and stopped without necessarily being destroyed.

@spring-issuemaster spring-issuemaster added this to the 3.0.0 M1 milestone Feb 5, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment