-
Bug Report
-
Resolution: Fixed
-
L3 - Default
-
None
-
None
Example:
ProcessInstance pi = runtimeService.startProcessInstanceByKey("testProcess",
Collections.<String, Object>singletonMap("var", Variables.longValue(null)));
assertNotNull(runtimeService.createProcessInstanceQuery().variableValueNotEquals("var", (long) 123).singleResult());
The assertion fails although the process instance should match, as it contains a variable called "var".
In addition, test and specify the following cases:
- variable is untyped null => query for untyped null (not equals and equals)
- variable is typed null => query for untyped null (not equals and equals)
- variable is untyped null => query for typed null (not equals and equals)
- variable is typed null => query for typed null (not equals and equals)
- variable is typed null => query for typed value (not equals and equals)
- variable is untyped null => query for typed value (not equals and equals)
- variable is typed value => query for untyped null (not equals and equals)
- variable is typed value => query for typed null (not equals and equals)
Roman and I agreed on the following scheme:
- with untyped null, i.e. variableValueEquals("var", null), both typed and untyped null are matched
- with typed null, i.e. variableValueEquals("var", Variables.longValue(null)), only typed null of type long is matched
- with typed value != null, i.e. i.e. variableValueEquals("var", 123L), only typed values with that value are matched
- for all these queries holds that variableValueNotEquals returns the complementary set