#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");
	}
#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