Merge branch 'master' of ssh://opensimulator.org:/var/git/opensim

UbitUmarov [2021-03-18 19:34:30]
Merge branch 'master' of ssh://opensimulator.org:/var/git/opensim
Filename
OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
OpenSim/Region/Framework/Scenes/Scene.cs
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 494ac80..b69f1dd 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -1104,7 +1104,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
             currentRegionSettings.CacheID = UUID.Random();
             currentRegionSettings.Save();

-            scene.EstateDataService.StoreEstateSettings(scene.RegionInfo.EstateSettings);
+            scene.EstateDataServiceSafe?.StoreEstateSettings(scene.RegionInfo.EstateSettings);

             IEstateModule estateModule = scene.RequestModuleInterface<IEstateModule>();
             if (estateModule != null)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 8d957b7..a3f7736 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -556,7 +556,7 @@ namespace OpenSim.Region.Framework.Scenes
             {
                 if (m_EstateDataService == null)
                 {
-                    m_EstateDataService = RequestModuleInterface<IEstateDataService>();
+                    m_EstateDataService = EstateDataServiceSafe;

                     if (m_EstateDataService == null)
                     {
@@ -568,6 +568,22 @@ namespace OpenSim.Region.Framework.Scenes
             }
         }

+        /// <summary>
+        /// Similar to 'EstateDataService', but if the service isn't found returns null instead of throwing an exception.
+        /// </summary>
+        public IEstateDataService EstateDataServiceSafe
+        {
+            get
+            {
+                if (m_EstateDataService == null)
+                {
+                    m_EstateDataService = RequestModuleInterface<IEstateDataService>();
+                }
+
+                return m_EstateDataService;
+            }
+        }
+
         public IAssetService AssetService
         {
             get
ViewGit