The locking of the renderAtoms array is not correct and can allow multiple
threads to overwrite the array during concurrent calls.
The problem arises due to using renderAtoms as the object to synchronize on
and then updating the renderAtoms reference inside the synchronized block.
Patch to follow after a bit more testing.