Certain data structures in CXF PolicyEngineImpl were holding reference to EndpointInfo, EndpointPolicy, BindingInfo etc. Clean up all the data structures during application stop, that keep a reference to the EndpointInfo object or which have EndpointInfo as the key.
Map of (EndpointInfo vs EndpointPolicy) maintained at PolicyEngineImpl. The client and server EndpointInfo's get added to this map. So while the server endpoint is stopped, we need to identify all the client EndpointInfos pertaining to this Server EndpointInfo, and cleanup them.
See the overridden remove() method of endpointInfo map.
Attached a patch sources on CXF 2.0.2.