From 900680f7188f003e2f487a527747f8551d1a37cb Mon Sep 17 00:00:00 2001 From: Jeff Fearn Date: Jul 16 2020 23:28:32 +0000 Subject: Bug 1847818 - notequals date comparison fails if field being checked isn't set Set date to default value for checks if field is unset. Change-Id: I66b050af4f5368122bb8f3bd607e3bf30584afa2 --- diff --git a/extensions/RuleEngine/lib/Job.pm b/extensions/RuleEngine/lib/Job.pm index fd6fe4a..bed550e 100644 --- a/extensions/RuleEngine/lib/Job.pm +++ b/extensions/RuleEngine/lib/Job.pm @@ -567,7 +567,7 @@ MATCH: foreach my $match (keys %$matches) { } # So now we know if we have a match or not - bre_debug("negate: $negate, found: $found"); + bre_debug("negate: $negate, found: $found, type: $type "); if (($negate && $found) || (!$negate && !$found)) { bre_debug('no match'); return 0; @@ -1003,6 +1003,10 @@ sub _custom_search_match_real { @$values = map { $dt_parser->parse_datetime($_) } @$values; } + if (scalar(@$values) == 1 && (!defined $values->[0])) { + $values->[0] = datetime_from('1900-01-01'); + } + if ($value && $value eq 'now') { $value = DateTime->now; }