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

View File

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

View File

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