mirror of https://github.com/apache/nifi.git
4e7a856f77
EL 'or' and 'and' functions can be called multiple times within the same context using the same evaluator instance. That happens if their subject is derived from an IteratingEvaluator such as 'anyDelineatedValues'. And if the right hand side expression for such 'or' and 'and' contains another IteratingEvaluator, then it can be evaluated more than the number of its candidates, ultimately an ArrayOutOfBoundsException is thrown. This commit makes Or/AndEvaluator caching its right hand side result to prevent that happens. For 'or' and 'and' functions, the right hand side expression is independant from their subject boolean value. It's enough evaluating right hand side once, because it returns the same result even with different subjects. Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com> This closes #3212. |
||
---|---|---|
.. | ||
nifi-data-provenance-utils | ||
nifi-expression-language | ||
nifi-flowfile-packager | ||
nifi-hl7-query-language | ||
nifi-json-utils | ||
nifi-logging-utils | ||
nifi-properties | ||
nifi-record | ||
nifi-record-path | ||
nifi-schema-utils | ||
nifi-security-utils | ||
nifi-site-to-site-client | ||
nifi-socket-utils | ||
nifi-utils | ||
nifi-web-utils | ||
nifi-write-ahead-log | ||
pom.xml |