From d7bca3d8e8f62e938da9fada95f7336710900f4a Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 20 Nov 2010 02:59:21 +0000 Subject: [PATCH] Fix unit tests and save problems (note; contrary to previous commits, saving 0.4 OARs is actually broken since serialized objects in inventories are not yet converted properly). Firstly, if you can save a version 1.0 OAR then you can load it too. Secondly, closing the save stream even on success before assets/objects are saved is a bad idea --- .../Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 2 +- .../World/Archiver/ArchiveWriteRequestPreparation.cs | 3 ++- .../Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 117b2fd2fc..d5d4468b49 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -56,7 +56,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// The maximum major version of OAR that we can read. Minor versions shouldn't need a max number since version /// bumps here should be compatible. /// - public static int MAX_MAJOR_VERSION = 0; + public static int MAX_MAJOR_VERSION = 1; protected Scene m_scene; protected Stream m_loadStream; diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs index 3eb797bd26..b987b5ac82 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs @@ -192,9 +192,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver new AssetsArchiver(archiveWriter), assetUuids, m_scene.AssetService, awre.ReceivedAllAssets).Execute(); } - finally + catch (Exception) { m_saveStream.Close(); + throw; } } diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs index ade0e11da3..991bb0f870 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs @@ -128,7 +128,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests public void TestSaveOarV0_2() { TestHelper.InMethod(); - //log4net.Config.XmlConfigurator.Configure(); +// log4net.Config.XmlConfigurator.Configure(); SceneObjectPart part1 = CreateSceneObjectPart1(); SceneObjectGroup sog1 = new SceneObjectGroup(part1);