Use volatile to ensure visibility
Use volatile to ensure visibility

The ParserDbData fields are written under lock, but not read under the
same lock.

To ensure that they will be visible to all threads that have called
prepare(), this change adds a volatile boolean flag to serve as a memory
barrier.

See the "Fixing Double-Checked Locking using Volatile" section of
https://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html

udger/udger-java