I do, you're right. I'll add synchronized on the getBuildTimeProperties. In such case I guess I can remove volatile keyword from variables, since they're only accessed for reading from another methods.