AbstractMessageRouter.getRequiredConversionService() and
IntegrationObjectSupport.getConversionService() try to initialize the
conversion service and may be called from multiple threads. There is
a race condition where this could end up in an uninitialized conversion service
causing NPEs in subsequent method calls.
To solve this issue, the conversion service is initialized with
double-checked locking.
For further details see https://jira.springsource.org/browse/INT-2931
INT-2931 Polishing - Add Test Case
Add a test case that reliably reproduces the issue and verifies
the fix.