Skip to content

Add Filter Rows condition isolation regression tests, fixes #7734 - #7855

Open
mattcasters wants to merge 1 commit into
apache:mainfrom
mattcasters:issue-7734
Open

Add Filter Rows condition isolation regression tests, fixes #7734#7855
mattcasters wants to merge 1 commit into
apache:mainfrom
mattcasters:issue-7734

Conversation

@mattcasters

Copy link
Copy Markdown
Contributor

What

Adds unit tests that lock in Filter Rows runtime isolation of the filter Condition from shared transform metadata.

Why

Issue #7734 reported that editing a Filter Rows condition in Hop GUI while a Local Pipeline Engine run was active could change True/False routing mid-execution.

That behavior was already fixed by #7686, which clones the condition into data.condition at init() and evaluates that private copy instead of meta.getCondition(). The reporter's build (hop-client-2.19.0-20260724) predated that change.

This PR does not change production code; it adds regression coverage so the isolation contract cannot regress:

  • After init(), replacing or mutating the meta condition must not change runtime evaluation (atomic and nested cases).
  • FilterRowsMeta.clone() deep-copies the condition tree / CValue instances for copy-paste and undo safety.

How

  • FilterRowsTest: simulate GUI meta mutation after init() and assert data.condition keeps the original rule.
  • FilterRowsMetaTest: assert deep clone independence for nested conditions.

Testing

./mvnw -pl plugins/transforms/filterrows -am test -Dtest=FilterRowsTest,FilterRowsMetaTest -Dsurefire.failIfNoSpecifiedTests=false

All 14 Filter Rows unit tests pass.

Fixes #7734

Lock in the runtime Condition clone behavior so GUI edits during an
active Local Pipeline Engine run cannot change True/False routing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]:[Bug or Feature?] Editing a Filter Rows Condition Changes Routing During an Active Pipeline Execution

1 participant