diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 25d9231093..30c8c9027d 100755 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs @@ -299,6 +299,10 @@ namespace OpenSim + " --mergeReplaceObjects if scene as a object with same id, replace it\n" + " without this option, skip loading that object\n" + "--skip-assets will load the OAR but ignore the assets it contains.\n" + + "--force-assets will load the OAR and try to upload the assets it contains.\n" + + " it will REPLACE those assets on local region cache\n" + + " it will also try to upload them to service, but that only work if they are not present" + + " Avoid using this except for some recovery atempts" + "--default-user will use this user for any objects with an owner whose UUID is not found in the grid.\n" + "--no-objects suppresses the addition of any objects (good for loading only the terrain).\n" + "--rotation specified rotation to be applied to the oar. Specified in degrees.\n" diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs index e1d822003b..0359868162 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs @@ -154,8 +154,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver continue; } + if(asset.FullID.IsZero()) + { + if(!UUID.TryParse(thiskey, out UUID id)) + { + m_log.InfoFormat($"[ARCHIVER]: cannot save asset '{asset.Name}' because it has Zero"); + m_notFoundAssetUuids.Add(kvp.Key); + continue; + } + asset.FullID = id; + } + sbyte assetType = kvp.Value; - if (asset != null && assetType == (sbyte)AssetType.Unknown) + if (assetType == (sbyte)AssetType.Unknown) { m_log.InfoFormat("[ARCHIVER]: Rewriting broken asset type for {0} to {1}", thiskey, SLUtil.AssetTypeFromCode(assetType)); asset.Type = assetType;