Couldn't another thread null out `tlGen` in the meantime? It's volatile, but we read it twice here.

Answering my own question: i suppose not, as we're in a `synchronized` section.