code: @SuppressWarnings("unchecked")
  	protected void initBroadcastInputReaders() throws Exception {
  		final int numBroadcastInputs = this.config.getNumBroadcastInputs();
  		final MutableReader<?>[] broadcastInputReaders = new MutableReader[numBroadcastInputs];
  		
  		for (int i = 0; i < this.config.getNumBroadcastInputs(); i++) {
  			//  ---------------- create the input readers ---------------------
  			// in case where a logical input unions multiple physical inputs, create a union reader
  			final int groupSize = this.config.getBroadcastGroupSize(i);
  			if (groupSize == 1) {
  				// non-union case
  				broadcastInputReaders[i] = new MutableRecordReader<IOReadableWritable>(this);
  			} else if (groupSize > 1){
  				// union case
  				MutableRecordReader<IOReadableWritable>[] readers = new MutableRecordReader[groupSize];
  				for (int j = 0; j < groupSize; ++j) {
  					readers[j] = new MutableRecordReader<IOReadableWritable>(this);
  				}
  				broadcastInputReaders[i] = new MutableUnionRecordReader<IOReadableWritable>(readers);
  			} else {
  				throw new Exception("Illegal input group size in task configuration: " + groupSize);
  			}
  		}
  		this.broadcastInputReaders = broadcastInputReaders;
  	}
docs: Creates the record readers for the extra broadcast inputs as configured by {@link TaskConfig#getNumBroadcastInputs()}.
  
  This method requires that the task configuration, the driver, and the user-code class loader are set.