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
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