Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Unknown
Description
By profiling some benchmark application, org.apache.cxf.binding.soap.SoapTransportFactory$SoapEndpointInfo has been found in the contention hotspots. That's because of the multiple synchronized blocks in org.apache.cxf.ws.policy.PolicyEngineImpl, which seem to be there basically for lazily getting the effective policy once the endpoint is fully initialized.
I propose to replace those synchronized blocks with (properly implemented) double-checked locking idiom so that no locking actually happens after endpoints have been initialized.