code: private void initInputFormat() {
  		ClassLoader userCodeClassLoader = getUserCodeClassLoader();
  		// obtain task configuration (including stub parameters)
  		Configuration taskConf = getTaskConfiguration();
  		this.config = new TaskConfig(taskConf);
  
  		try {
  			this.format = config.<InputFormat<OT, InputSplit>>getStubWrapper(userCodeClassLoader)
  					.getUserCodeObject(InputFormat.class, userCodeClassLoader);
  
  			// check if the class is a subclass, if the check is required
  			if (!InputFormat.class.isAssignableFrom(this.format.getClass())) {
  				throw new RuntimeException("The class '" + this.format.getClass().getName() + "' is not a subclass of '" +
  						InputFormat.class.getName() + "' as is required.");
  			}
  		}
  		catch (ClassCastException ccex) {
  			throw new RuntimeException("The stub class is not a proper subclass of " + InputFormat.class.getName(),
  					ccex);
  		}
  
  		Thread thread = Thread.currentThread();
  		ClassLoader original = thread.getContextClassLoader();
  		// configure the stub. catch exceptions here extra, to report them as originating from the user code
  		try {
  			thread.setContextClassLoader(userCodeClassLoader);
  			this.format.configure(this.config.getStubParameters());
  		}
  		catch (Throwable t) {
  			throw new RuntimeException("The user defined 'configure()' method caused an error: " + t.getMessage(), t);
  		}
  		finally {
  			thread.setContextClassLoader(original);
  		}
  
  		// get the factory for the type serializer
  		this.serializerFactory = this.config.getOutputSerializer(userCodeClassLoader);
  	}
docs: Initializes the InputFormat implementation and configuration.
  
  @throws RuntimeException
  Throws if instance of InputFormat implementation can not be
  obtained.