My windows regional settings is Turkish(required for
the error to come up). I am using oracle as database.
My table name is "kelime".
When i want to insert data into "kelime" using dbunit,
it throws org.dbunit.dataset.NoSuchTableException.
This has to be a problem related to turkish
"i".uppercase() is "İ". And "İ" is not equal to "I".
(with mysql there is no such problem because oracle
keeps table names uppercase)
Logged In: YES
user_id=1803108
Originator: NO
Hi there,
could you please attach a testcase and the exception stack trace so that we can reproduce your problem? If possible could you do this with the latest 2.2.3 release?
Thanks in advance,
mat
I found a very interesting article about this problem at http://cafe.elharo.com/blogroll/turkish/ - I think this is exactly the problem dbunit suffers from. A simple testcase for dbunit should be created using e.g. turkish as locale and a table name in HSQLDB containing a lower-case "i" in the name.
I was able to reproduce your problem by writing a new test DatabaseTableMetaDataTest#testCaseInsensitiveAndI18n(). I fixed the bug by changing "tableName.toUpperCase()" to "tableName.toUpperCase(Locale.ENGLISH)" in method "OrderedTableNameMap#getTableName(String tableName)" (which provides the table name depending on the case-sensitivity settings).
It will be available with the 2.4.3 release (commit is SVN rev 935).
Thanks and regards,
matthias