Skip to content

[Bug] Boolean-to-string filter comparison throws ClassCastException #10877

Description

@yuluo-yx

Before Creating the Bug Report

  • I found a bug, not just a question.
  • I searched open GitHub Issues and pull requests and found no duplicate.
  • I confirmed that this bug belongs to Apache RocketMQ.

Runtime platform environment

macOS (Darwin), reproduced with an isolated local unit test.

RocketMQ version

Branch: develop
Git commit: fd0c959

JDK Version

Zulu OpenJDK 8 (8.94.0.17)

Describe the Bug

ComparisonExpression handles a Boolean left operand and String right operand by casting the Boolean left value to String. With string-expression conversion enabled by the selector parser, this branch always throws ClassCastException.

Steps to Reproduce

  1. Parse a selector expression such as TRUE=a.
  2. Evaluate it with string property a=true.
  3. Observe the Boolean-to-String cast failure.

What Did You Expect to See?

The string right operand should be converted to Boolean and compared normally.

What Did You See Instead?

The Boolean left operand is cast to String and evaluation throws ClassCastException.

Additional Context

The reverse String-to-Boolean branch already converts the string operand correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions