catch exceptions when loading malformed xml files
							parent
							
								
									c5ddbd3254
								
							
						
					
					
						commit
						946db5461c
					
				|  | @ -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."); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Jeff Ames
						Jeff Ames