code: @Override
  	@SuppressWarnings("unchecked")
  	public void initialize() {
  		
  		// grab a handle to the hash table from the iteration broker
  		if (taskContext instanceof AbstractIterativePactTask) {
  			AbstractIterativePactTask<?, ?> iterativeTaskContext = (AbstractIterativePactTask<?, ?>) taskContext;
  			String identifier = iterativeTaskContext.brokerKey();
  			this.hashTable = (CompactingHashTable<IT1>) SolutionSetBroker.instance().get(identifier);
  		} else {
  			throw new RuntimeException("The task context of this driver is no iterative task context.");
  		}
  		
  		TaskConfig config = taskContext.getTaskConfig();
  		ClassLoader classLoader = taskContext.getUserCodeClassLoader();
  		
  		TypeSerializer<IT1> solutionSetSerializer = this.hashTable.getBuildSideSerializer();
  		TypeSerializer<IT2> probeSideSerializer = taskContext.<IT2>getInputSerializer(0).getSerializer();
  		
  		TypeComparatorFactory<IT2> probeSideComparatorFactory = config.getDriverComparator(0, classLoader);
  		TypeComparator<IT1> solutionSetComparator = this.hashTable.getBuildSideComparator().duplicate();
  		this.probeSideComparator = probeSideComparatorFactory.createComparator();
  		
  		solutionSideRecord = solutionSetSerializer.createInstance();
  		probeSideRecord = probeSideSerializer.createInstance();
  		
  		TypePairComparatorFactory<IT1, IT2> factory = taskContext.getTaskConfig().getPairComparatorFactory(taskContext.getUserCodeClassLoader());
  		pairComparator = factory.createComparator21(solutionSetComparator, this.probeSideComparator);
  	}
docs: --------------------------------------------------------------------------------------------