code: private void crossFirst1withNValues(final T1 val1, final T2 firstValN,
  			final Iterator<T2> valsN, final GenericJoiner<T1, T2, O> matchFunction, final Collector<O> collector)
  	throws Exception
  	{
  		this.copy1 = this.serializer1.copy(val1, this.copy1);
  		matchFunction.join(this.copy1, firstValN, collector);
  		
  		// set copy and match first element
  		boolean more = true;
  		do {
  			final T2 nRec = valsN.next();
  			
  			if (valsN.hasNext()) {
  				this.copy1 = this.serializer1.copy(val1, this.copy1);
  				matchFunction.join(this.copy1, nRec, collector);
  			} else {
  				matchFunction.join(val1, nRec, collector);
  				more = false;
  			}
  		}
  		while (more);
  	}
docs: Crosses a single value from the first input with N values, all sharing a common key.
  Effectively realizes a <i>1:N</i> match (join).
  
  @param val1 The value form the <i>1</i> side.
  @param firstValN The first of the values from the <i>N</i> side.
  @param valsN Iterator over remaining <i>N</i> side values.
  
  @throws Exception Forwards all exceptions thrown by the stub.