[BUG] Server won't start (and channels won't deploy) on a Turkish JVM locale
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 66/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- java
- Domínio
- backend, database, internationalization
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 227
- Forks
- 81
- Merge médio
- 3d 6h
- PRs com merge (30d)
- 15
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de OpenIntegrationEngine/engine
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
OpenIntegrationEngine/engine#485 ·
Mantenedores costumam responder em até 2 dias
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
OpenIntegrationEngine/engine#478 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
OpenIntegrationEngine/engine#355 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
OpenIntegrationEngine/engine#347 ·
Mantenedores costumam responder em até 2 dias
-
Fix call-home in test runAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
OpenIntegrationEngine/engine#313 ·
Mantenedores costumam responder em até 2 dias
Todas as issues de OpenIntegrationEngine/engine
Issues semelhantes
-
status: waiting-for-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
spring-projects/spring-ai#7206 ·
Mantenedores costumam responder em até 2 dias
-
area/cli
Dificuldade 2/5 Meio dia Facilidade para iniciantes 78/100
quarkusio/quarkus#57623 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
jhipster/prettier-java#1113 ·
Mantenedores costumam responder em até 2 dias
-
bug follow-up lane:backlog
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Sanne/incus-spawn#1576 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Pasting code into a comment adds imports for the pasted codeTalvez já em andamento @ravnskjaer assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
eclipse-jdt/eclipse.jdt.ui#3275 · 1 comentário ·
Mantenedores costumam responder em até 1 dia