If this needs to be volatile, I'm getting very suspicious. The `UnionFind` implementation isn't thread-safe, and furthermore the ``uf`` field may suffer visibility issues if accessed from different threads. So, does ``uf`` need to be accessed from different thread? If the answer is no, then why do you need ``symbolsMapReady`` to be volatile?