Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở
#483 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
66/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.

Ngôn ngữ chính
Java
Star
227
Fork
81
Merge trung bình
3 ngày 6 giờ
Pull request đã merge (30 ngày)
15

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của OpenIntegrationEngine/engine

Tất cả issue của OpenIntegrationEngine/engine

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.