[Enhancement] LogicExpression three-valued truth table and short-circuit behavior lack direct tests
Maintainer thường phản hồi trong vòng 1 ngày
Đá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
- 78/100
Hướng nghiên cứu
Bắt đầu với LogicExpression.java trong filter/src/main/java/org/apache/rocketmq/filter/expression/ để xem AND và OR đánh giá các toán hạng như thế nào và UNKNOWN (null) được xử lý ở đâu. Sau đó đọc ExpressionTest hiện có để xem cách các biểu thức SQL92 được tạo và đánh giá. Thêm một LogicExpressionTest mới, khẳng định cả chín tổ hợp toán hạng AND/OR và rằng matches() coi UNKNOWN là false, cùng với các kiểm tra short-circuit chứng minh toán hạng bên phải không được đánh giá khi toán hạng bên trái đã quyết định kết quả. Chạy các test của module filter; hoàn thành khi bảng chân trị và cả hai trường hợp short-circuit đều pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
LogicExpression (filter/src/main/java/org/apache/rocketmq/filter/expression/LogicExpression.java) implements the SQL92 three-valued logic used by property (SQL92) subscriptions: operands evaluate to TRUE, FALSE, or null (UNKNOWN), AND/OR short-circuit when the left operand already decides the result, and UNKNOWN propagates (null AND TRUE = UNKNOWN, null OR FALSE = UNKNOWN), with matches() treating UNKNOWN as no-match.
ExpressionTest covers composite expressions end to end, but nothing pins the truth table itself or the short-circuit: the full 3x3 operand matrix is not asserted anywhere, and no test would notice if the short-circuit disappeared (left FALSE under AND still evaluating the right operand) or if UNKNOWN propagation was replaced by a plain false.
Since brokers compile every SQL92 subscription through these expressions, the matching semantics deserve direct regression coverage.
Expected behavior
A dedicated LogicExpressionTest covering the 3x3 truth table for AND/OR, the UNKNOWN-matches-false rule, and short-circuit proofs (right operand provably unevaluated when the left decides).
- Ngôn ngữ chính
- Java
- Star
- 22.6k
- Fork
- 12k
- Merge trung bình
- 6 ngày 16 giờ
- Pull request đã merge (30 ngày)
- 18
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- 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 apache/rocketmq
-
[Bug] mqadmin createUser/updateUser trim the ACL password, storing a secret the caller never typedCó thể đã có người làm @iloveeyjafjalla đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/rocketmq#11446 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] notifyMasterOnline aborts the long-polling wake-up with a NullPointerException when an arrival drains a bucket firstCó thể đã có người làm @iloveeyjafjalla đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
apache/rocketmq#11441 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] DefaultMQPushConsumer.shutdown() never stops the pop consume service, so its non-daemon threads keep the JVM aliveCó thể đã có người làm @iloveeyjafjalla đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
apache/rocketmq#11427 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Enhancement] FilterFactory duplicate-registration and unregister semantics lack testsCó thể đã có người làm @chennaji9 đã nhận 7 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
apache/rocketmq#11340 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Enhancement] SyncStateInfo defensive-copy and epoch semantics lack direct testsCó thể đã có người làm @chennaji9 đã nhận 7 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/rocketmq#11338 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/rocketmq
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/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 82/100
apache/rocketmq-dashboard#6896 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
OpenIntegrationEngine/engine#496 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
SasanLabs/VulnerableApp#836 ·
Maintainer thường phản hồi trong vòng 1 ngày