We have a support tool that copies sites for users. I stumbled across this with the following process:
1. Suppose Site 'site1' exists, but does not contain the resource tool
2. Use SiteService.copySite("site2", site1) to make a copy of site1
3. Note that no root collection should be created for site2
4. Copy resources from site1 to site2 using the CHS's transferCopyEntities
When it creates the root collect to kick off the process, there are locking issues on the collection because it doesn't commit the collection or close the edit.
The attached patch fixes this issue.