Null pointer exception is due to a frequent singleton code mistake, as you can read here, it use "Synchronisation Locale" Method which is known to have trouble due to compilation "optimization" from JVM.
We have to use "Technique du Holder" instead.
POC made with modification on ComponentManager.java work better (with other modification to make ComponentManager more thread safe)