Concurrent execution of registerSynchronization and getSynchronization may result in errors .
The context uses LinkedHashSet:
public void initSynchronization() throws IllegalStateException {
if (isSynchronizationActive()) {
throw new IllegalStateException("Cannot activate transaction synchronization - already active");
}
this.transactionContext.setSynchronizations(new LinkedHashSet<>());
}