code: private void crossSecond1withNValues(T2 val1, T1 firstValN,
  										Iterator<T1> valsN, FlatJoinFunction<T1, T2, O> joinFunction, Collector<O> collector) throws Exception {
  		T2 copy2 = createCopy(serializer2, val1, this.copy2);
  		joinFunction.join(firstValN, copy2, collector);
  
  		// set copy and join first element
  		boolean more = true;
  		do {
  			final T1 nRec = valsN.next();
  
  			if (valsN.hasNext()) {
  				copy2 = createCopy(serializer2, val1, this.copy2);
  				joinFunction.join(nRec, copy2, collector);
  			} else {
  				joinFunction.join(nRec, val1, collector);
  				more = false;
  			}
  		}
  		while (more);
  	}
docs: Crosses a single value from the second side with N values, all sharing a common key.
  Effectively realizes a <i>N:1</i> 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.