I have a web application that uses Spring and CXF (currently 2.4.2 but I have reproduced this on 2.4.6 and 2.5.2 as well) and is deployed on Tomcat.
The application is initialized using the org.springframework.web.context.ContextLoaderListener.
Starting and shutting the application down works like a charm but if I try to refresh the Spring application context, using ((ConfigurableApplicationContext)applicationContext).refresh(); I run into problems.
The application context first destroys all its beans (including CXFBusImpl, or rather its subclass SpringBus). SpringBus however calls ctx.close() on its application context - leading to a NullPointerException when the application context shortly after tries to close its bean factory:
I think that SpringBus shouldn't call ctx.close() in destroyBeans(). I tried removing this row and rebuilding CXF myself which fixed the problem (and I couldn't detect any other problems starting or shutting down).