I have the following: [$ReportEntry/FirstName = empty or contains(Employee.EmployeeProfile_Employee/Employee.Employee/FirstName, $ReportEntry/FirstName)] Which hits the following state at some point: [NULL = empty or contains(Employee.EmployeeProfile_Employee/Employee.Employee/FirstName, NULL)] With a stacktrace containing: Caused by: java.lang.RuntimeException: Unknown predicate function expression type of second parameter: [(DefaultRelativeLocationPath): [(DefaultNameStep): NULL]] Am I missing something very simple here ? I understand that the or is suppose to short-circuit on "NULL = empty", if not is there a cor/cand equivalent ? Ad-hoc question: How can I set a string's default value on an entity, I tried '' and "", but that populates the string with those characters.
You're right in saying it shouldn't even evaluate the second part when the first is true. I suggest filing a ticket with this case.
The reason behind this is that the entire expression is parsed but not evaluated by the runtime itself, the database handles this after the expression has been transformed to SQL.