diff options
Diffstat (limited to 'OpenSim/Region/Environment/Modules')
3 files changed, 19 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 0e37197..c9f8fce 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -103,11 +103,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
103 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects", serialisedSceneObjects.Count); | 103 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects", serialisedSceneObjects.Count); |
104 | 104 | ||
105 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); | 105 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); |
106 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); | 106 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); |
107 | 107 | ||
108 | foreach (string serialisedSceneObject in serialisedSceneObjects) | 108 | foreach (string serialisedSceneObject in serialisedSceneObjects) |
109 | { | 109 | { |
110 | sceneObjects.Add(serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject)); | 110 | SceneObjectGroup sceneObject = serialiser.LoadGroupFromXml2(m_scene, serialisedSceneObject); |
111 | |||
112 | if (null != sceneObject) | ||
113 | sceneObjects.Add(sceneObject); | ||
111 | } | 114 | } |
112 | 115 | ||
113 | m_log.Debug("[ARCHIVER]: Starting scripts"); | 116 | m_log.Debug("[ARCHIVER]: Starting scripts"); |
@@ -117,6 +120,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
117 | sceneObject.CreateScriptInstances(0, true); | 120 | sceneObject.CreateScriptInstances(0, true); |
118 | } | 121 | } |
119 | 122 | ||
123 | m_log.InfoFormat("[ARCHIVER]: Restored {0} objects to the scene", sceneObjects.Count); | ||
124 | |||
125 | int ignoredObjects = serialisedSceneObjects.Count - sceneObjects.Count; | ||
126 | |||
127 | if (ignoredObjects > 0) | ||
128 | m_log.WarnFormat("[ARCHIVER]: Ignored {0} objects that already existed in the scene", ignoredObjects); | ||
129 | |||
120 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); | 130 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); |
121 | } | 131 | } |
122 | 132 | ||
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs index 0fc8ac3..6e48f8e 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs | |||
@@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser | |||
85 | /// </summary> | 85 | /// </summary> |
86 | /// <param name="scene"></param> | 86 | /// <param name="scene"></param> |
87 | /// <param name="xmlString"></param> | 87 | /// <param name="xmlString"></param> |
88 | /// <returns>The scene object created</returns> | 88 | /// <returns>The scene object created. null if the scene object already existed</returns> |
89 | SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString); | 89 | SceneObjectGroup LoadGroupFromXml2(Scene scene, string xmlString); |
90 | 90 | ||
91 | /// <summary> | 91 | /// <summary> |
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs index f283ecb..bd19a7e 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs | |||
@@ -180,14 +180,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
180 | /// </summary> | 180 | /// </summary> |
181 | /// <param name="scene"></param> | 181 | /// <param name="scene"></param> |
182 | /// <param name="xmlData"></param> | 182 | /// <param name="xmlData"></param> |
183 | /// <returns>The scene object created</returns> | 183 | /// <returns>The scene object created. null if the scene object already existed</returns> |
184 | protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData) | 184 | protected static SceneObjectGroup CreatePrimFromXml2(Scene scene, string xmlData) |
185 | { | 185 | { |
186 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); | 186 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); |
187 | 187 | ||
188 | scene.AddRestoredSceneObject(obj, true); | 188 | if (scene.AddRestoredSceneObject(obj, true)) |
189 | 189 | return obj; | |
190 | return obj; | 190 | else |
191 | return null; | ||
191 | } | 192 | } |
192 | 193 | ||
193 | public static void SavePrimsToXml2(Scene scene, string fileName) | 194 | public static void SavePrimsToXml2(Scene scene, string fileName) |