output: #fixed code
                               public void run(ClassGroup one, ClassGroup two)
  	{
  		eone = new Execution(one);
  		eone.populateInitialMethods();
  		List<Method> initial1 = eone.getInitialMethods().stream().sorted((m1, m2) -> m1.getName().compareTo(m2.getName())).collect(Collectors.toList());
  		eone.run();
  		
  		etwo = new Execution(two);
  		etwo.populateInitialMethods();
  		List<Method> initial2 = etwo.getInitialMethods().stream().sorted((m1, m2) -> m1.getName().compareTo(m2.getName())).collect(Collectors.toList());
  		etwo.run();
  		
  		assert initial1.size() == initial2.size();
  		
  		for (int i = 0; i < initial1.size(); ++i)
  		{
  			Method m1 = initial1.get(i), m2 = initial2.get(i);
  			
  			objMap.put(m1, m2);
  		}
  
  //		process(
  //			initial1.get(0).getMethod(),
  //			initial2.get(0).getMethod()
  //		);
  //		processed.add(initial1.get(0).getMethod());
  		process(
  			one.findClass("class143").findMethod("run"),
  			two.findClass("class143").findMethod("run")
  		);
  //		processed.add(one.findClass("client").findMethod("init"));
  		
  //		for (;;)
  //		{
  //			Optional next = objMap.keySet().stream()
  //				.filter(m -> !processed.contains(m))
  //				.findAny();
  //			if (!next.isPresent())
  //				break;
  //			
  //			Method m = (Method) next.get();
  //			Method m2 = (Method) objMap.get(m);
  //			
  //			System.out.println("Scanning " + m.getName() + " -> " + m2.getName());
  //			process(m, m2);
  //			processed.add(m);
  //		}
  		
  		for (Entry<Object, Object> e : objMap.entrySet())
  		{
  			Method m1 = (Method) e.getKey();
  			Method m2 = (Method) e.getValue();
  			
  			System.out.println("FINAL " + m1.getMethods().getClassFile().getName() + "." + m1.getName() + " -> " + m2.getMethods().getClassFile().getName() + "." + m2.getName());
  		}
  
  		System.out.println("done");
  	}
input: #vulnerable code 
                               public void run(ClassGroup one, ClassGroup two)
  	{
  		eone = new Execution(one);
  		eone.populateInitialMethods();
  		eone.run();
  		
  		etwo = new Execution(two);
  		etwo.populateInitialMethods();
  		etwo.run();
  		
  		process(
  			one.findClass("client").findMethod("init"),
  			two.findClass("client").findMethod("init")
  		);
  
  		System.out.println("done");
  	} 
                              #location 12 
                              #vulnerability type NULL_DEREFERENCE