-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: 5.14.0
-
Component/s: Connection String & URI Options
-
None
-
None
-
Java Drivers
-
None
-
None
-
None
-
None
-
None
-
None
ConnectionString lower-cases each option name with String.toLowerCase(), which uses the JVM default locale, so under tr-TR "maxIdleTimeMS" becomes "maxıdletimems" with a dotless ı and the option is dropped with only a warning in the log. With 5.14.0, -Duser.language=tr -Duser.country=TR and mongodb://db1.example.com/?maxIdleTimeMS=60000&tls=true&tlsAllowInvalidHostnames=true, getMaxConnectionIdleTime() and getSslInvalidHostnameAllowed() return null instead of 60000 and true. ServerAddress lower-cases host names the same way, so "MONGO-PRIMARY.LOCAL" becomes "mongo-prımary.local". Using toLowerCase(Locale.ROOT) fixes both; I can open a PR with unit tests once there is a ticket.