I think i understood what is going on here. I was thinking
tr_TR or tr-TR as an language option was fixing the startup
problem. Actually tr_TR or tr-TR has no meaning as a language
option and i think java opts to default en language if it
encounters an unknown language option. I tested with meaningless
language options such as:
-Duser.language=loremipsum
-Duser.language=qwerty
-Duser.language=asdfg
With all these options, coldfusion starts without any problem
but if i say
-Duser.language=tr, than it fails to start. The reason tr
causes problem is the letter i. I think somewhere in the jrun code,
there is a conversion from lowercase to uppercase or uppercase to
lowercase. In every language other than Turkish, i becomes I when
converted to uppercase but in Turkish it becomes
İ (I with a dot above). Likewise, I becomes ı (i
without dot) when converted to lowercase. So any code fragment that
contains i or I fails if there is a case conversion. To prevent
that, any case conversion must be done according to English locale
if the string to be converted is invisible to user ( logic code ).
There is a detailed explanation about this at
http://java.sys-con.com/read/46241.htm.
Unless there is a fix to jrun code (highly optimistic
expectation), the only option for Turkish developers is to start
coldfusion with -Duser.language=en and then explicitly define
locale as Turkish when needed in coldfusion code (<cfset
setLocale("tr_TR")>).
Thanks