From bdabb937b27b5489e8a2c0c74442b03331fbf310 Mon Sep 17 00:00:00 2001
From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at>
Date: Thu, 20 May 2021 13:43:12 +0200
Subject: [PATCH] added "using block" to prevent exception if the same file
 gets overwriten multiple times

---
 .../Implementation/MultistageJobViewModel_v0_1.cs     | 11 ++++++-----
 .../Integration/Multistage/MultistageVehicleTest.cs   |  6 ++++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
index 29768682d4..4e082ad46b 100644
--- a/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
+++ b/VECTO3GUI2020/ViewModel/MultiStage/Implementation/MultistageJobViewModel_v0_1.cs
@@ -137,13 +137,14 @@ namespace VECTO3GUI2020.ViewModel.MultiStage.Implementation
 			jobContainer.Execute();
 			jobContainer.WaitFinished();
 			
-			var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName));
-			var valid = validator.ValidateXML(XmlDocumentType.MultistageOutputData);
-			if (!valid) {
-				Debug.WriteLine("Invalid Outputfile");
+			using (var reader = XmlReader.Create(writer.XMLMultistageReportFileName)) {
+				var validator = new XMLValidator(reader);
+				var valid = validator.ValidateXML(XmlDocumentType.MultistageOutputData);
+				if (!valid)
+					Debug.WriteLine("Invalid Outputfile");
+				Debug.WriteLine($"Written to {writer.XMLMultistageReportFileName}");
 			}
 
-			Debug.WriteLine($"Written to {writer.XMLMultistageReportFileName}");
 		}
 
 		private ICommand _saveInputDataCommand;
diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
index 1ca03f49f3..fb4ce9411b 100644
--- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs
@@ -84,9 +84,11 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage
 			var progress = jobContainer.GetProgress();
 			Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error)));
 
+			using (var xmlReader = XmlReader.Create(writer.XMLMultistageReportFileName)) {
+				var validator = new XMLValidator(xmlReader);
+				Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError);
+			}
 
-			var validator = new XMLValidator(XmlReader.Create(writer.XMLMultistageReportFileName));
-			Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError);
 		}
 
 
-- 
GitLab