LinkedAssets aren't sharing meshes when imported

Finally, I found a solution, but I’m not sure is the best way to fix it. The problem isn’t because of using the importer or the assetManager, it is because of when ussing the assetManager the same importer as the read method caller is being used. So, if instead of using importer.load(info); we use e.load(info) the same issue will appear.

The workaround I’m using is to fetch the model from the assetManager cache first and if it is null, call the load from the new importer instance. So, the only needed code to be changed in AssetLinkNode is the iterator one, leaving it like:

for (Iterator<ModelKey> it = assetLoaderKeys.iterator(); it.hasNext();) {
    ModelKey modelKey = it.next();

    Spatial child = loaderManager.getFromCache(modelKey);
    if(child == null) {
        AssetInfo info = loaderManager.locateAsset(modelKey);
        child = (Spatial) importer.load(info);
        
        if(child != null) {
            loaderManager.addToCache(modelKey, child);
        }
    } else {
        // This miss, however, the DesktopAssetManager.registerAndCloneSmartAsset.
        child = child.clone();

        // This miss can be solved using the commented line instead, what would retrieve again the model from the cache
//        child = loaderManager.loadAsset(modelKey);
    }

    if (child != null) {
        child.parent = this;
        children.add(child);
        assetChildren.put(modelKey, child);
    } else {
        Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "Cannot locate {0} for asset link node {1}",
                                                            new Object[]{ modelKey, key });
    }
}