[BUG] Server won't start (and channels won't deploy) on a Turkish JVM locale
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
- Lĩnh vực
- backend, database, internationalization
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:
- 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.
- 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
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của OpenIntegrationEngine/engine
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
OpenIntegrationEngine/engine#485 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
OpenIntegrationEngine/engine#478 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
OpenIntegrationEngine/engine#355 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
OpenIntegrationEngine/engine#347 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Fix call-home in test runĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
OpenIntegrationEngine/engine#313 ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của OpenIntegrationEngine/engine
Issue tương tự
-
bug follow-up lane:backlog
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Sanne/incus-spawn#1576 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
checkstyle/checkstyle#22069 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
it-at-m/eNoVa-Editor#79 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày