CompressionType.of fails under the Turkish locale

Đang mở Phù hợp với người mới
#11,512 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 1 ngày

@sharanggupta đang làm issue này rồi.

Từ ngày 12/11/2026.

  • #11513 của @sharanggupta — đang mở
  • #11514 của @xixi-box — đang mở

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
83/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

Tìm CompressionType.of(String) và các bài kiểm thử của nó trong kho lưu trữ RocketMQ. Đọc logic phân tích cú pháp và các bài kiểm thử lân cận, sau đó chạy bài kiểm thử liên quan trước và sau khi thêm trường hợp hồi quy cho việc phân tích zlib theo locale tiếng Thổ Nhĩ Kỳ. Hoàn tất khi trường hợp này được xác định thành kiểu nén ZLIB theo locale đó; issue nêu Locale.ROOT là cách chuẩn hóa dự kiến.

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

Mô tả

Describe the bug
CompressionType.of(String) normalises the name with name.trim().toUpperCase() (no Locale). Under the Turkish locale (tr-TR, also az), a lower/mixed-case value containing i folds to the dotted capital İ, so "zlib".toUpperCase() -> "ZLİB", which does not match case "ZLIB" and falls through to throw new RuntimeException("Unsupported compress type name: ...").

Impact
A producer JVM under a Turkish default locale throws when the compression type is given in lower/mixed case, e.g. -Drocketmq.message.compressType=zlib (DefaultMQProducer reads rocketmq.message.compressType) or the benchmark -ct zlib. The uppercase form ZLIB (the default) is unaffected, so this only hits configs relying on the documented case-insensitive parsing.

Version: 5.5.1 and current develop.

Fix: toUpperCase(Locale.ROOT) — the keyword set is ASCII. One-line fix + regression test ready; happy to open a PR.

Sibling instances of the same root cause exist in the common module (TopicMessageType.getMetricsValue() metric labels; OS-name checks in NetworkUtil/MixAll) — can address in a follow-up if wanted.

Ngôn ngữ chính
Java
Star
22.7k
Fork
12k
Merge trung bình
3 ngày 18 giờ
Pull request đã merge (30 ngày)
17

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 apache/rocketmq

Tất cả issue của apache/rocketmq

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.