@Test public void testGetProcessInstancesFilteredWithVariablesQueryDataService() throws Exception { Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("stringData", "waiting for signal"); parameters.put("personData", createPersonInstance(USER_JOHN)); List<Long> processInstanceIds = createProcessInstances(parameters); final QueryDefinition query = getProcessInstanceWithVariablesQueryDefinition(); try { queryClient.registerQuery(query); QueryFilterSpec filterSpec = new QueryFilterSpecBuilder().greaterThan("processinstanceid", processInstanceIds.get(3)).get(); List<ProcessInstance> instances = queryClient.query(query.getName(), QueryServicesClient.QUERY_MAP_PI_WITH_VARS, filterSpec, 0, 10, ProcessInstance.class); assertNotNull(instances); assertEquals(1, instances.size()); for (ProcessInstance instance : instances) { final Map<String, Object> variables = instance.getVariables(); assertNotNull(variables); assertEquals(4, variables.size()); assertEquals(TestConfig.getUsername(), variables.get("initiator")); assertEquals("waiting for signal", variables.get("stringData")); assertEquals("Person{name='john'}", variables.get("personData")); assertEquals("true", variables.get("nullAccepted")); } } finally { abortProcessInstances(processInstanceIds); queryClient.unregisterQuery(query.getName()); } }