Hi,
You have defined the users as candidate-users="...", and that makes the tasks available on the group task list. For a user to list, you must call:
tasks = taskService.findGroupTasks("john");
Then if you want to work with it, you must pick it up, so the task is given a specific assignee, and no other person picks it up:
taskService.takeTask(tasks.get(0).getId(), "john");
You must work out the tasks.get(0).getId() part :)
Hope it helps.