Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[BUG] Server won't start (and channels won't deploy) on a Turkish JVM locale

Aberta
#483 0 comentários 0 reações 0 responsáveis Ver no GitHub

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

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:

  1. Startup: MyBatis 3.1.1 lowercases type aliases with the default locale, so "Integer" becomes "ınteger", nobody knows what that is, and startup loops.
  2. Deploy: with (1) worked around, every channel deploy fails. JdbcDao.addMetaDataColumn builds the query name with StringUtils.lowerCase, so it looks for addMetaDataColumnStrı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.Integer in the mappers (25 lines; MyBatis is fixed upstream since 3.2.0, but that's a big jump);
  • for (2), use Locale.ROOT where casing is used for lookups;
  • add a tr_TR smoke 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

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de OpenIntegrationEngine/engine

Todas as issues de OpenIntegrationEngine/engine

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.