@Override
        protected T initialValue() {
            try {
                T obj = type.getDeclaredConstructor().newInstance();

                if (path != null) {
                    ((AssetLocator) obj).setRootPath(path);
                }
                return obj;
            } catch (InstantiationException | IllegalAccessException
                    | IllegalArgumentException | InvocationTargetException
                    | NoSuchMethodException | SecurityException ex) {
                logger.log(Level.SEVERE, "An exception occurred while instantiating asset locator: " + type.getName(), ex);
            }
            return null;
        }
<code>ImplHandler</code> manages the asset loader and asset locator
implementations in a thread safe way. This allows implementations
which store local persistent data to operate with a multi-threaded system.
This is done by keeping an instance of each asset loader and asset
locator object in a thread local.
jme3-core/src/main/java/com/jme3/asset/ImplHandler.java