Menu

#122 possibly i18n problem

v2.1
closed-fixed
None
5
2009-01-01
2006-08-10
sami kuzey
No

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)

Discussion

  • matthias g

    matthias g - 2008-08-18

    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

     
  • matthias g

    matthias g - 2008-12-07

    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.

     
  • matthias g

    matthias g - 2009-01-01

    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

     
  • matthias g

    matthias g - 2009-01-01
    • status: open --> closed-fixed
     

Log in to post a comment.