aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
diff options
context:
space:
mode:
authorOren Hurvitz2012-04-29 08:53:33 +0300
committerJustin Clark-Casey (justincc)2012-05-07 19:07:38 +0100
commit65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8 (patch)
treed225a88e021c79253bcf782419c31ee1132b8239 /OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
parentFor osGetGridNick(), osGetGridName(), osGetGridLoginURI() and osGetGridCustom... (diff)
downloadopensim-SC_OLD-65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8.zip
opensim-SC_OLD-65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8.tar.gz
opensim-SC_OLD-65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8.tar.bz2
opensim-SC_OLD-65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8.tar.xz
Better error handling if Load OAR or Save OAR fail
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
index eabe46e..384d81b 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -124,6 +124,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver
124 if (options.ContainsKey("noassets") && (bool)options["noassets"]) 124 if (options.ContainsKey("noassets") && (bool)options["noassets"])
125 SaveAssets = false; 125 SaveAssets = false;
126 126
127 // Whether someone else (i.e., ReceivedAllAssets()) is responsible for calling TriggerOarFileSaved() when we're done
128 bool eventHandled = false;
129
127 try 130 try
128 { 131 {
129 Dictionary<UUID, AssetType> assetUuids = new Dictionary<UUID, AssetType>(); 132 Dictionary<UUID, AssetType> assetUuids = new Dictionary<UUID, AssetType>();
@@ -230,15 +233,21 @@ namespace OpenSim.Region.CoreModules.World.Archiver
230 m_scene.RegionInfo.ScopeID, options, awre.ReceivedAllAssets); 233 m_scene.RegionInfo.ScopeID, options, awre.ReceivedAllAssets);
231 234
232 Util.FireAndForget(o => ar.Execute()); 235 Util.FireAndForget(o => ar.Execute());
236 eventHandled = true;
233 } 237 }
234 else 238 else
235 { 239 {
236 awre.ReceivedAllAssets(new List<UUID>(), new List<UUID>()); 240 awre.ReceivedAllAssets(new List<UUID>(), new List<UUID>());
241 eventHandled = true;
237 } 242 }
238 } 243 }
239 catch (Exception) 244 catch (Exception e)
240 { 245 {
241 m_saveStream.Close(); 246 m_saveStream.Close();
247
248 if (!eventHandled)
249 m_scene.EventManager.TriggerOarFileSaved(m_requestId, e.ToString());
250
242 throw; 251 throw;
243 } 252 }
244 } 253 }