Should this be volatile (and the null check be double-locked synchronisation) to ensure thread-interoperability?