@Deployment public void testMultipleTimersOnUserTask(){
  Date startTime=new Date();
  ProcessInstance pi=runtimeService.startProcessInstanceByKey("nonInterruptingTimersOnUserTask");
  Task task1=taskService.createTaskQuery().singleResult();
  assertEquals("First Task",task1.getName());
  TimerJobQuery jobQuery=managementService.createTimerJobQuery().processInstanceId(pi.getId());
  List<Job> jobs=jobQuery.list();
  assertEquals(2,jobs.size());
  processEngineConfiguration.getClock().setCurrentTime(new Date(startTime.getTime() + ((60 * 60 * 1000) + 5000)));
  Job job=managementService.createTimerJobQuery().executable().singleResult();
  assertNotNull(job);
  managementService.moveTimerToExecutableJob(job.getId());
  managementService.executeJob(job.getId());
  assertEquals(1L,jobQuery.count());
  assertEquals(2L,taskService.createTaskQuery().count());
  List<Task> taskList=taskService.createTaskQuery().orderByTaskName().desc().list();
  assertEquals("First Task",taskList.get(0).getName());
  assertEquals("Escalation Task 1",taskList.get(1).getName());
  taskService.complete(taskList.get(1).getId());
  assertEquals(1L,taskService.createTaskQuery().count());
  assertEquals("First Task",taskService.createTaskQuery().singleResult().getName());
  processEngineConfiguration.getClock().setCurrentTime(new Date(startTime.getTime() + ((2 * 60 * 60* 1000) + 5000)));
  waitForJobExecutorToProcessAllJobs(5000L,25L);
  assertEquals(0L,jobQuery.count());
  assertEquals(2L,taskService.createTaskQuery().count());
  taskList=taskService.createTaskQuery().orderByTaskName().desc().list();
  assertEquals("First Task",taskList.get(0).getName());
  assertEquals("Escalation Task 2",taskList.get(1).getName());
  taskService.complete(taskList.get(0).getId());
  assertEquals(1L,taskService.createTaskQuery().count());
  Task escalationTask=taskService.createTaskQuery().singleResult();
  assertEquals("Escalation Task 2",escalationTask.getName());
  taskService.complete(escalationTask.getId());
  assertProcessEnded(pi.getId());
}
