Defaults for <settings/> element aren't applied if it doesn't exist
-------------------------------------------------------------------
Key: IBATIS-436
URL: https://issues.apache.org/jira/browse/IBATIS-436
Project: iBatis for Java
Issue Type: Bug
Components: SQL Maps
Affects Versions: 2.3.0
Environment: iBatis 2.3.0, Java 1.5, Spring 2.0.7
Reporter: Nilesh Kapadia
If you don't include <settings> element in sqlMapConfig, the defaults (that are
described in the documentation) aren't properly applied. This definitely
applies to cacheModelsEnabled setting. cacheModelsEnabled is false if you
don't have a <settings> element, and true if you do. I have not looked at
whether this affects other elements (I'd imagine all booleans that are supposed
to default to true are affected).
The problem appears to be that when the <settings> element doesn't exist, most
of the code in addSettingsNodelets() method in SqlMapConfigParser does not
execute (the anonymous class and method that implements Nodelet never
executes). It appears that this code is where the defaults are normally
applied.
In SqlMapExecutorDelegate, the isCacheModelsEnabled() method is returning false
because the boolean cacheModelsEnabled is never set and thus defaults to false.
The workaround is of course to include <settings/> in sqlMapConfig. But most
examples out there don't include this element, so there is the possibility that
many apps are running with the incorrect defaults.
I have not checked if this issue exists in previous versions, only looked at
2.3.0 so far.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.