catch exceptions when loading malformed xml files

afrisby
Jeff Ames 2007-11-17 05:53:12 +00:00
parent c5ddbd3254
commit 946db5461c
3 changed files with 42 additions and 22 deletions

View File

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Xml;
using libsecondlife;
using Nini.Config;
using OpenSim.Framework.Console;
@ -147,6 +148,8 @@ namespace OpenSim.Framework.Communications.Cache
// System.Console.WriteLine("trying loading asset into database");
string filePath = Path.Combine(Util.configDir(), "OpenSimAssetSet.xml");
if (File.Exists(filePath))
{
try
{
XmlConfigSource source = new XmlConfigSource(filePath);
@ -166,6 +169,11 @@ namespace OpenSim.Framework.Communications.Cache
assets.Add(newAsset);
}
}
catch (XmlException e)
{
MainLog.Instance.Error("ASSETS", "Error loading " + filePath + ": " + e.ToString());
}
}
assets.ForEach(action);
}
}

View File

@ -27,8 +27,10 @@
*/
using System.IO;
using System.Xml;
using libsecondlife;
using Nini.Config;
using OpenSim.Framework.Console;
namespace OpenSim.Framework.Communications.Cache
{
@ -64,10 +66,17 @@ namespace OpenSim.Framework.Communications.Cache
string filePath = Path.Combine(Util.configDir(), "OpenSimLibrary.xml");
if (File.Exists(filePath))
{
try
{
XmlConfigSource source = new XmlConfigSource(filePath);
ReadItemsFromFile(source);
}
catch (XmlException e)
{
MainLog.Instance.Error("INVENTORY", "Error loading " + filePath + ": " + e.ToString());
}
}
}
private void CreateLibraryItems()

View File

@ -166,9 +166,17 @@ namespace OpenSim.Framework
if (configurationFilename.Trim() != "")
{
configurationPlugin.SetFileName(configurationFilename);
try
{
configurationPlugin.LoadData();
useFile = true;
}
catch (XmlException e)
{
MainLog.Instance.Error("Error loading " + configurationFilename + ": " + e.ToString());
useFile = false;
}
}
else
{
if (this.configurationFromXMLNode != null)
@ -189,7 +197,6 @@ namespace OpenSim.Framework
bool ignoreNextFromConfig = false;
while (convertSuccess == false)
{
string console_result = "";
string attribute = null;
if (useFile || (!useFile && configurationFromXMLNode != null))
@ -228,7 +235,6 @@ namespace OpenSim.Framework
//Dont Ask! Just use default
console_result = configOption.configurationDefault;
}
}
}
else
@ -292,7 +298,6 @@ namespace OpenSim.Framework
{
convertSuccess = true;
return_result = intResult;
}
errorMessage = "a signed 32 bit integer (int)";
break;
@ -347,7 +352,6 @@ namespace OpenSim.Framework
{
convertSuccess = true;
return_result = uintResult;
}
errorMessage = "an unsigned 32 bit integer (uint)";
break;
@ -387,7 +391,6 @@ namespace OpenSim.Framework
configurationPlugin.SetAttribute(configOption.configurationKey, console_result);
}
if (!this.resultFunction(configOption.configurationKey, return_result))
{
Console.MainLog.Instance.Notice("The handler for the last configuration option denied that input, please try again.");