Instead of doing this, extend InheritableThreadLocal above and implement its initialValue() method to construct this NLS instance.  That way when you are in default mode we still can maintain a thread-local cache of the bundles we've examined.