forked from Qortal/qortal
Previous fixes for "transaction rollback: serialization failure" when updating trim heights in commits 16397852 and 58ed7205 had the right idea but were broken due to being synchronized on different objects. this.repository.trimHeightsLock would be a new Object() for each repository connection/session and so not actually synchronize concurrent updates. Implicit saveChanges()/COMMIT is still needed. Fix is to use a repository-wide object for synchronization - in this case the repositoryFactory object as held by RepositoryManager. Added test to cover. Also reduced DB trim height read to one call at start of thread for both trimming threads.