You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Locale-dependent case conversion breaks CLIENT TYPE argument and TS.INFO parsing under Turkish/Azeri locales #4595
Redis wire tokens and reply parsing must not depend on the JVM default locale.
ClientType.REPLICA should always produce the wire token replica.
TS.INFO replies with duplicatePolicy: first / min should always parse to the corresponding DuplicatePolicy enum value.
Actual behavior
On a JVM whose default locale is Turkish or Azeri (tr_TR, az_AZ), ASCII case conversion of the letter i/I produces the dotted/dotless variants (İ/ı):
ClientType uses name().toLowerCase(), so REPLICA → replıca — CLIENT KILL/LIST TYPE replica sends an invalid token and fails with a server error.
TSInfo uses toUpperCase() before DuplicatePolicy.valueOf(...), so first → FİRST — valueOf throws, the exception is swallowed, and duplicatePolicy silently stays a String.
Steps to reproduce
Locale.setDefault(newLocale("tr", "TR"));
// 1) wire token (must run before ClientType is class-loaded)System.out.println("REPLICA".toLowerCase()); // replıca// 2) reply parsingDuplicatePolicy.valueOf("first".toUpperCase()); // IllegalArgumentException: FİRST
Or run any client on a Turkish-locale JVM (-Duser.language=tr -Duser.country=TR) and call jedis.clientList(ClientType.REPLICA).
Context
Related issues #1319 fixed the same Turkish-locale problem for WITHSCORES, and GeoUnit, Protocol.ResponseKeyword, and
Environment
Jedis: master (affects all released versions)
Affects only JVMs with tr/az default locales; no impact on other locales
Activity
ggivo commentedon Jul 7, 2026
Reproducible example
Use Locale.ENGLISH for ASCII case conversion in ClientType and TSInfo (…
Use Locale.ENGLISH for ASCII case conversion in ClientType and TSInfo (…
Backport #4593 to 7.5.x: use Locale.ENGLISH for ASCII case conversion…