mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 08:55:56 +08:00
catch exceptions when loading malformed xml files
This commit is contained in:
@@ -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;
|
||||
@@ -148,22 +149,29 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
string filePath = Path.Combine(Util.configDir(), "OpenSimAssetSet.xml");
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
XmlConfigSource source = new XmlConfigSource(filePath);
|
||||
|
||||
for (int i = 0; i < source.Configs.Count; i++)
|
||||
try
|
||||
{
|
||||
// System.Console.WriteLine("loading asset into database");
|
||||
string assetIdStr = source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated());
|
||||
string name = source.Configs[i].GetString("name", "");
|
||||
sbyte type = (sbyte) source.Configs[i].GetInt("assetType", 0);
|
||||
sbyte invType = (sbyte) source.Configs[i].GetInt("inventoryType", 0);
|
||||
string fileName = source.Configs[i].GetString("fileName", "");
|
||||
XmlConfigSource source = new XmlConfigSource(filePath);
|
||||
|
||||
AssetBase newAsset = CreateAsset(assetIdStr, name, fileName, false);
|
||||
for (int i = 0; i < source.Configs.Count; i++)
|
||||
{
|
||||
// System.Console.WriteLine("loading asset into database");
|
||||
string assetIdStr = source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated());
|
||||
string name = source.Configs[i].GetString("name", "");
|
||||
sbyte type = (sbyte) source.Configs[i].GetInt("assetType", 0);
|
||||
sbyte invType = (sbyte) source.Configs[i].GetInt("inventoryType", 0);
|
||||
string fileName = source.Configs[i].GetString("fileName", "");
|
||||
|
||||
newAsset.Type = type;
|
||||
newAsset.InvType = invType;
|
||||
assets.Add(newAsset);
|
||||
AssetBase newAsset = CreateAsset(assetIdStr, name, fileName, false);
|
||||
|
||||
newAsset.Type = type;
|
||||
newAsset.InvType = invType;
|
||||
assets.Add(newAsset);
|
||||
}
|
||||
}
|
||||
catch (XmlException e)
|
||||
{
|
||||
MainLog.Instance.Error("ASSETS", "Error loading " + filePath + ": " + e.ToString());
|
||||
}
|
||||
}
|
||||
assets.ForEach(action);
|
||||
|
||||
@@ -27,8 +27,10 @@
|
||||
*/
|
||||
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using libsecondlife;
|
||||
using Nini.Config;
|
||||
using OpenSim.Framework.Console;
|
||||
|
||||
namespace OpenSim.Framework.Communications.Cache
|
||||
{
|
||||
@@ -65,8 +67,15 @@ namespace OpenSim.Framework.Communications.Cache
|
||||
string filePath = Path.Combine(Util.configDir(), "OpenSimLibrary.xml");
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
XmlConfigSource source = new XmlConfigSource(filePath);
|
||||
ReadItemsFromFile(source);
|
||||
try
|
||||
{
|
||||
XmlConfigSource source = new XmlConfigSource(filePath);
|
||||
ReadItemsFromFile(source);
|
||||
}
|
||||
catch (XmlException e)
|
||||
{
|
||||
MainLog.Instance.Error("INVENTORY", "Error loading " + filePath + ": " + e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -166,8 +166,16 @@ namespace OpenSim.Framework
|
||||
if (configurationFilename.Trim() != "")
|
||||
{
|
||||
configurationPlugin.SetFileName(configurationFilename);
|
||||
configurationPlugin.LoadData();
|
||||
useFile = true;
|
||||
try
|
||||
{
|
||||
configurationPlugin.LoadData();
|
||||
useFile = true;
|
||||
}
|
||||
catch (XmlException e)
|
||||
{
|
||||
MainLog.Instance.Error("Error loading " + configurationFilename + ": " + e.ToString());
|
||||
useFile = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -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.");
|
||||
|
||||
Reference in New Issue
Block a user