Camunda External Task Client- task stuck at one state

Hi
I was trying out the example on Camunda External Task Client (https://github.com/camunda/camunda-external-task-client-java/tree/master/examples/loan-granting).

I tried the above tutorial step by step. After deploying, I can see the process stuck at the first task.

But apparently the class App is not executing, coz I am not able to see the variables set during the first external task and the execution is not moving to next step.

Am I missing something here?. Why isn’t the external task executing and moving after the first step.
I am attaching my bpmn.

testExternal2.bpmn (3.8 KB)

   public class App {

    	public static void main(String... args) throws InterruptedException {
    		// bootstrap the client
    		ExternalTaskClient client = ExternalTaskClient.create().baseUrl("http://localhost:8080/engine-rest").build();

    		// subscribe to the topic
    		client.subscribe("emailListener").lockDuration(1000).handler((externalTask, externalTaskService) -> {

    			// retrieve a variable from the Workflow Engine
    			int key1 = externalTask.getVariable("key1");

    			List<Integer> creditScores = new ArrayList<>(Arrays.asList(key1, 9, 1, 4, 10));

    			// create an object typed variable
    			ObjectValue creditScoresObject = Variables.objectValue(creditScores).create();
    			   // set the recently created variable
    		    externalTask.setVariableTyped("creditScores", creditScoresObject);
    			// complete the external task
    			externalTaskService.complete(externalTask);
    			// ,
    			// Collections.singletonMap("creditScores", creditScoresObject)
    			System.out.println("The External Task " + externalTask.getId() + " has been completed!");

    		}).open();
    		// subscribe to the topic
    		client.subscribe("caseCreation").lockDuration(1000).handler((externalTask, externalTaskService) -> {

    			// retrieve a variable from the Workflow Engine
    			ObjectValue creditScoresObject = externalTask.getVariable("creditScores");

    			externalTaskService.complete(externalTask);

    			System.out.println("The External Task " + externalTask.getId() + " has been completed!");

    		}).open();
    		Thread.sleep(3000);
    	}

    }