private void removeCollectedAssets() {
        int removedAssets = 0;
        for (KeyRef ref; (ref = (KeyRef) refQueue.poll()) != null;) {
            // (Cannot use ref.get() since it was just collected by GC!)
            AssetKey key = ref.clonedKey;

            // Asset was collected, note that at this point the asset cache
            // might not even have this asset anymore, it is OK.
            if (smartCache.remove(key) != null) {
                removedAssets++;
            }
        }
        if (removedAssets >= 1) {
            logger.log(Level.FINE,
                    "WeakRefCloneAssetCache: {0} assets were purged from the cache.", removedAssets);
        }
    }
Stores the original key and original asset.
The asset info contains a cloneable asset (e.g. the original, from
which all clones are made) and also a weak reference to the
original key, which is used when the clones are produced.
jme3-core/src/main/java/com/jme3/asset/cache/WeakRefCloneAssetCache.java