[BUG] Server won't start (and channels won't deploy) on a Turkish JVM locale
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 66/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- java
- Domaine
- backend, database, internationalization
Piste de recherche
Start with JdbcDao.addMetaDataColumn, where StringUtils.lowerCase builds the query name, and with the MyBatis mapper files that hold the type aliases. Reproduce by running the server with -Duser.language=tr -Duser.country=TR and deploying a channel. Done means startup and channel deploy both succeed under the Turkish locale, using Locale.ROOT for case-insensitive lookups or explicit class names in the mappers.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Spun off from #476. It all started with a test failing on my Italian machine. Out of curiosity I tried Turkish, the classic locale troublemaker, and things got worse: the server doesn't even start.
Describe the bug
Turkish has a dotted and a dotless i, so "I".toLowerCase() gives ı. OIE trips over this twice:
- Startup: MyBatis 3.1.1 lowercases type aliases with the default locale, so
"Integer"becomes"ınteger", nobody knows what that is, and startup loops. - Deploy: with (1) worked around, every channel deploy fails.
JdbcDao.addMetaDataColumnbuilds the query name withStringUtils.lowerCase, so it looks foraddMetaDataColumnStrıng, finds nothing, and Derby says "SQL text pointer is null".
Consistently reproducible.
To Reproduce
Run the server with -Duser.language=tr -Duser.country=TR, then deploy any channel.
Expected behavior
OIE works regardless of the system locale.
Environment
- OS: macOS
- Java: Zulu 17.0.17
- Version:
main@ a13e6afb6
Workaround(s)
Run the JVM with an English locale.
Notes
As offered in #476, happy to look into a fix if that works for you. Rough ideas:
- for (1), use
java.lang.Integerin the mappers (25 lines; MyBatis is fixed upstream since 3.2.0, but that's a big jump); - for (2), use
Locale.ROOTwhere casing is used for lookups; - add a
tr_TRsmoke scenario so it stays fixed. That covers the CI half of #476.
Open to other approaches, of course.
- Langage dominant
- Java
- Étoiles
- 227
- Forks
- 81
- Merge moyen
- 3 j 6 h
- PR mergées (30 j)
- 15
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de OpenIntegrationEngine/engine
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#485 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
OpenIntegrationEngine/engine#478 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#355 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#347 ·
Les mainteneurs répondent en général sous 2 jours
-
Fix call-home in test runOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OpenIntegrationEngine/engine#313 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de OpenIntegrationEngine/engine
Issues similaires
-
status: waiting-for-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
spring-projects/spring-ai#7206 ·
Les mainteneurs répondent en général sous 2 jours
-
bug ci sev-6
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
-
area/cli
Difficulté 2/5 Une demi-journée Accessibilité débutants 78/100
quarkusio/quarkus#57623 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
jhipster/prettier-java#1113 ·
Les mainteneurs répondent en général sous 2 jours
-
bug follow-up lane:backlog
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Sanne/incus-spawn#1576 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour