rmannibucau opened a new issue, #9077: URL: https://github.com/apache/hop/issues/9077
## Problem The MetaInject (ETL Metadata Injection) transform has a single `allowEmptyStreamOnExecution` boolean that only distinguishes two cases: - `false` -> every input stream must have data, - `true` -> run if *at least one* input stream has data. There is **no way to run the injected template pipeline when *all* input streams are empty** -- even though templates that rely on constant mappings alone are perfectly valid. The runtime gate in `MetaInject.processRow()` hard-blocks the all-empty case (the `!data.receivedRows` condition) regardless of the flag. ## Proposed solution Replace the boolean with a three-state `ConditionStreamBehavior` enum: - `ALL_NON_EMPTY` -- run only when every stream has data (legacy `false`), - `AT_LEAST_ONE_NON_EMPTY` -- run when at least one stream has data (legacy `true`), - `ALWAYS` -- **new**: run even when every input stream is empty. Backward compatibility must be preserved: the old `allow_empty_stream_on_execution` key is dropped from *new* serialized metadata, but old files still load and map deterministically (`Y`/`true` -> `AT_LEAST_ONE_NON_EMPTY`, `N`/`false` -> `ALL_NON_EMPTY`, missing -> `ALL_NON_EMPTY`), without confusing an explicit `Y` with a missing tag. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
