View Issue Details

IDProjectCategoryView StatusLast Update
0003210SymmetricDSBugpublic2017-10-06 11:51
ReportertJeyhun Assigned Toelong  
Priorityurgent 
Status closedResolutionfixed 
Product Version3.8.0 
Target Version3.8.30Fixed in Version3.8.30 
Summary0003210: Turkish Locale Problem
DescriptionProblem on systems with Turkish Locale. toLowerCase() and toUpperCase() functions used in SymmetricDS source when generating and quering table and column names should be used as toLowerCase(Locale.ENGLISH) and toUpperCase(Locale.ENGLISH).

for example "sym_monitor" table becomes "SYM_MONİTOR" and can not be found by SymmetricDS.

In Turkish 'i' -> 'İ' and 'ı' -> 'I'

http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug
Steps To ReproduceSet default locale to tr_tr or update setenv/sym-service.conf to set the locale for Java:

 -Djava.io.tmpdir=target -Duser.country=tr -Duser.language=TR
Additional InformationPatch to fix is here: http://www.jumpmind.com/downloads/symmetricds/patches/3.8/patch-0003210.jar
TagsNo tags attached.

Activities

elong

2017-09-01 12:28

developer   ~0001071

That's pretty interesting, never heard of that before. I was able to reproduce it by setting Java system properties "-Duser.country=tr -Duser.language=TR". Most of the code uses equalsIgnoreCase(), so I'm guess there's only one or two instances of toUpperCase() in there.

Related Changesets

SymmetricDS: 3.8 0fd5f86f

2017-09-01 11:59:21

admin

Details Diff
0003210: Turkish Locale Problem Affected Issues
0003210
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/db/AbstractTriggerTemplate.java Diff File
mod - symmetric-db/src/main/java/org/jumpmind/db/platform/AbstractDatabasePlatform.java Diff File
mod - symmetric-util/src/main/java/org/jumpmind/util/FormatUtils.java Diff File
mod - symmetric-util/src/main/java/org/jumpmind/util/LinkedCaseInsensitiveMap.java Diff File

Issue History

Date Modified Username Field Change
2017-07-28 12:40 tJeyhun New Issue
2017-09-01 12:28 elong Note Added: 0001071
2017-09-01 16:02 elong Assigned To => elong
2017-09-01 16:02 elong Status new => assigned
2017-09-01 16:03 elong Product Version 3.8.28 => 3.8.0
2017-09-01 16:03 elong Target Version => 3.8.30
2017-09-01 16:03 elong Steps to Reproduce Updated View Revisions
2017-09-01 16:03 elong Status assigned => resolved
2017-09-01 16:03 elong Resolution open => fixed
2017-09-01 16:03 elong Fixed in Version => 3.8.30
2017-09-01 16:18 admin Additional Information Updated View Revisions
2017-09-01 17:00 admin Changeset attached => SymmetricDS 3.8 0fd5f86f
2017-10-06 11:51 chenson Status resolved => closed