[ http://issues.apache.org/jira/browse/IBATISNET-37?page=history ] Gilles Bayon closed IBATISNET-37: ---------------------------------
Resolution: Fixed Fix Version: DataMapper 1.2 > An exception is thrown when a file watch is applied to an embedded resource > --------------------------------------------------------------------------- > > Key: IBATISNET-37 > URL: http://issues.apache.org/jira/browse/IBATISNET-37 > Project: iBatis for .NET > Type: Bug > Versions: DataMapper 1.1 > Environment: [assembly: AssemblyVersion("1.5.458")] > Reporter: Ron Grabowski > Assignee: Gilles Bayon > Fix For: DataMapper 1.2 > > As of 4/13/2005, the version of IBatisNet in SVN contains the following code > on line 505 of DomSqlMapBuilder.cs: > private void ConfigureSqlMap( ) > { > XmlSerializer serializer = null; > XmlNode sqlMapNode = _configScope.NodeContext; > _configScope.ErrorContext.Activity = "loading SqlMap "; > _configScope.ErrorContext.Resource = sqlMapNode.OuterXml.ToString(); > if (_configScope.UseConfigFileWatcher == true) > { > ConfigWatcherHandler.AddFileToWatch( Resources.GetFileInfo( > Resources.GetValueOfNodeResourceUrl(sqlMapNode) ) ); > } > Resources.GetValueOfNodeResourceUrl does not contain a case for "embedded" > (this is correct becuase embedded files do not reside on the file system: > public static string GetValueOfNodeResourceUrl(XmlNode node) > { > string path = null; > if (node.Attributes["resource"] != null) > { > path = Path.Combine(_applicationBase, node.Attributes["resource"].Value); > } > else if (node.Attributes["url"] != null) > { > path = node.Attributes["url"].Value; > } > return path; > } > In the case of embedded resources, GetValueOfNodeResourceUrl returns null. > The null value is then passed up to Resources.GetFileInfo which makes a call > to Path.Combine. An exception is throw becuase Path.Combine cannot be sent a > null value: > [ArgumentNullException: Value cannot be null. > Parameter name: path2] > System.IO.Path.Combine(String path1, String path2) > One solution would be to wrap the call to AddFileToWatch to make sure the > sqlMap has a resource or a url attribute: > if (sqlMapNode.Attributes["resource"] != null || sqlMapNode.Attributes["url"] > != null) > { > if (_configScope.UseConfigFileWatcher == true) > { > ConfigWatcherHandler.AddFileToWatch( Resources.GetFileInfo( > Resources.GetValueOfNodeResourceUrl(sqlMapNode) ) ); > } > } -- 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 - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira