You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ibatis.apache.org by "Ron Grabowski (JIRA)" <ib...@incubator.apache.org> on 2005/05/05 20:10:04 UTC

[jira] Created: (IBATISNET-51) If a has a "cacheModel" attribute set and cacheModelsEnabled="false" in SqlMap.config, an DataMapperException is thrown

If a <statement> has a "cacheModel" attribute set and cacheModelsEnabled="false" in SqlMap.config, an DataMapperException is thrown
-----------------------------------------------------------------------------------------------------------------------------------

         Key: IBATISNET-51
         URL: http://issues.apache.org/jira/browse/IBATISNET-51
     Project: iBatis for .NET
        Type: Bug
    Versions: DataMapper 1.2    
 Environment: [assembly: AssemblyVersion("1.1.458")]
DataMapper from 5/5/2005 SVN
    Reporter: Ron Grabowski
 Assigned to: Gilles Bayon 
    Priority: Minor


As of 5/5/2005, the version in SVN incorrectly throws an exception if a <statement> has a cacheModel attribute set to a valid <cacheModel>:

 <cacheModels>
  <cacheModel id="StateCache" type="LRU" implementation="MEMORY" >
   <flushInterval hours="12"/>			
  </cacheModel>
  </cacheModels>
  <statements>
   <select id="GetOne" resultMap="StateResult" cacheModel="StateCache" parameterClass="int">

and the cacheModelsEnabled attribute is set to false in SqlMap.config:

 <settings>
  <setting useStatementNamespaces="true"/>
  <setting cacheModelsEnabled="false"/>
 </settings>

The following exception is thrown:

"
[DataMapperException: This SQL map does not contain an Cache named State.StateCache]
   IBatisNet.DataMapper.SqlMapper.GetCache(String name) in \IBatisNet.DataMapper\SqlMapper.cs:1229
   IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Initialize() in \IBatisNet.DataMapper\Configuration\DomSqlMapBuilder.cs:384
   IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean isCallFromDao) in \IBatisNet.DataMapper\Configuration\DomSqlMapBuilder.cs:149

[ConfigurationException: 
- The error occurred while Set CacheModel to statement.
- statement :State.GetOne
- The error occurred in cacheModel : State.StateCache.  
- Check the .]
"

The exception is caused by this code starting on line 373 of DomSqlMapBuilder.cs:

 #region Attach CacheModel to statement
 foreach(DictionaryEntry entry in _configScope.SqlMapper.MappedStatements)

One way to prevent the exception would be to not go into the foreach loop if caching is disabled:

 #region Attach CacheModel to statement
 if (_configScope.IsCacheModelsEnabled)
 {
  foreach(DictionaryEntry entry in _configScope.SqlMapper.MappedStatements)

A few lines later in the file there is this code:

 _configScope.ErrorContext.MoreInfo = "statement :"+mappedStatement.Statement.Id;
 _configScope.ErrorContext.Resource = "cacheModel : " +mappedStatement.Statement.CacheModelName;

There is a space missing after "statement :". It should be:

 _configScope.ErrorContext.MoreInfo = "statement : "+mappedStatement.Statement.Id;
 _configScope.ErrorContext.Resource = "cacheModel : " +mappedStatement.Statement.CacheModelName;

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


[jira] Closed: (IBATISNET-51) If a has a "cacheModel" attribute set and cacheModelsEnabled="false" in SqlMap.config, an DataMapperException is thrown

Posted by "Gilles Bayon (JIRA)" <ib...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/IBATISNET-51?page=all ]
     
Gilles Bayon closed IBATISNET-51:
---------------------------------

     Resolution: Fixed
    Fix Version: DataMapper 1.2

In SVN

> If a <statement> has a "cacheModel" attribute set and cacheModelsEnabled="false" in SqlMap.config, an DataMapperException is thrown
> -----------------------------------------------------------------------------------------------------------------------------------
>
>          Key: IBATISNET-51
>          URL: http://issues.apache.org/jira/browse/IBATISNET-51
>      Project: iBatis for .NET
>         Type: Bug
>     Versions: DataMapper 1.2
>  Environment: [assembly: AssemblyVersion("1.1.458")]
> DataMapper from 5/5/2005 SVN
>     Reporter: Ron Grabowski
>     Assignee: Gilles Bayon
>     Priority: Minor
>      Fix For: DataMapper 1.2

>
> As of 5/5/2005, the version in SVN incorrectly throws an exception if a <statement> has a cacheModel attribute set to a valid <cacheModel>:
>  <cacheModels>
>   <cacheModel id="StateCache" type="LRU" implementation="MEMORY" >
>    <flushInterval hours="12"/>			
>   </cacheModel>
>   </cacheModels>
>   <statements>
>    <select id="GetOne" resultMap="StateResult" cacheModel="StateCache" parameterClass="int">
> and the cacheModelsEnabled attribute is set to false in SqlMap.config:
>  <settings>
>   <setting useStatementNamespaces="true"/>
>   <setting cacheModelsEnabled="false"/>
>  </settings>
> The following exception is thrown:
> "
> [DataMapperException: This SQL map does not contain an Cache named State.StateCache]
>    IBatisNet.DataMapper.SqlMapper.GetCache(String name) in \IBatisNet.DataMapper\SqlMapper.cs:1229
>    IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Initialize() in \IBatisNet.DataMapper\Configuration\DomSqlMapBuilder.cs:384
>    IBatisNet.DataMapper.Configuration.DomSqlMapBuilder.Build(XmlDocument document, DataSource dataSource, Boolean useConfigFileWatcher, Boolean isCallFromDao) in \IBatisNet.DataMapper\Configuration\DomSqlMapBuilder.cs:149
> [ConfigurationException: 
> - The error occurred while Set CacheModel to statement.
> - statement :State.GetOne
> - The error occurred in cacheModel : State.StateCache.  
> - Check the .]
> "
> The exception is caused by this code starting on line 373 of DomSqlMapBuilder.cs:
>  #region Attach CacheModel to statement
>  foreach(DictionaryEntry entry in _configScope.SqlMapper.MappedStatements)
> One way to prevent the exception would be to not go into the foreach loop if caching is disabled:
>  #region Attach CacheModel to statement
>  if (_configScope.IsCacheModelsEnabled)
>  {
>   foreach(DictionaryEntry entry in _configScope.SqlMapper.MappedStatements)
> A few lines later in the file there is this code:
>  _configScope.ErrorContext.MoreInfo = "statement :"+mappedStatement.Statement.Id;
>  _configScope.ErrorContext.Resource = "cacheModel : " +mappedStatement.Statement.CacheModelName;
> There is a space missing after "statement :". It should be:
>  _configScope.ErrorContext.MoreInfo = "statement : "+mappedStatement.Statement.Id;
>  _configScope.ErrorContext.Resource = "cacheModel : " +mappedStatement.Statement.CacheModelName;

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