Merge branch 'master' of ssh://opensimulator.org:/var/git/opensim
Merge branch 'master' of ssh://opensimulator.org:/var/git/opensim
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