[ http://issues.apache.org/jira/browse/IBATISNET-67?page=comments#action_65894 ] Ron Grabowski commented on IBATISNET-67: ----------------------------------------
I think this is incorrect too: throw new ConfigurationException( string.Format("Unable to load config file \"{0}\". Cause : ", fileName, e.Message ) ,e); If you take out just the string.format code, I think you're missing a {1} string.Format("Unable to load config file \"{0}\". Cause : ", fileName, // 0 e.Message) // 1 I think the corrected code is: throw new ConfigurationException( string.Format("Unable to load config file \"{0}\". Cause : {1}", fileName, e.Message ) ,e); Here are the affected functions: GetConfigAsXmlDocument(string fileName) GetResourceAsXmlDocument(string resource) GetUrlAsXmlDocument(string url) GetEmbeddedResourceAsXmlDocument(string fileResource) ** 2 times ** In this function at the very bottom of the file: SplitFileAndAssemblyNames (string originalFileName) "Cause : " should be removed because you aren't passing in {1} with an e.Message: // CORRECT throw new ConfigurationException( string.Format("Unable to find assembly part to load embedded resource in string \"{0}\".", originalFileName)); > IBatisNet.Common.Utilities.Resources.GetConfigAsXmlDocument(string) doesn't > attempt to close its XmlTextReader when an exception is thrown while parsing > the SqlMap.config file > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: IBATISNET-67 > URL: http://issues.apache.org/jira/browse/IBATISNET-67 > Project: iBatis for .NET > Type: Bug > Reporter: Ron Grabowski > Assignee: Gilles Bayon > > As of 5/20/2005, if an exception is thrown while trying to parse > SqlMap.config (note the incorrect closing XML comment tag): > <!-- > <sqlMap embedded="Resources.SqlMaps.Foo.xml, Company.Project.Data"/> > -> > the underlying XmlTextReader is not closed. On XP/IIS, the SqlMap.config file > becomes locked by aspnet_wp.exe and the webserver needs to be restarted. This > code: > public static XmlDocument GetConfigAsXmlDocument(string fileName) > { > XmlDocument config = new XmlDocument(); > try > { > XmlTextReader reader = new XmlTextReader(Path.Combine(_baseDirectory, > fileName)); > config.Load(reader); > reader.Close(); // <--- NEVER CALLED IF AN EXCEPTION IS THROWN > } > catch(Exception e) > { > throw new ConfigurationException( > string.Format("Unable to load config file \"{0}\". Cause : ", > fileName, > e.Message ) ,e); > } > return config; > } > Needs to be changed to this: > public static XmlDocument GetConfigAsXmlDocument(string fileName) > { > XmlDocument config = new XmlDocument(); > XmlTextReader reader = null; > try > { > reader = new XmlTextReader(Path.Combine(_baseDirectory, fileName)); > config.Load(reader); > } > catch(Exception e) > { > throw new ConfigurationException( > string.Format("Unable to load config file \"{0}\". Cause : ", > fileName, > e.Message ) ,e); > } > finally > { > if (reader != null) > { > reader.Close(); > } > } > return config; > } > I searched all the files in the Common, DataAccess, and DataMapper projects > for "XmlTextReader" and everything else looks correct. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira