code: void reconstructExecutionPipelines() {
  
  		Iterator<ExecutionGroupVertex> it = this.stageMembers.iterator();
  		final Set<ExecutionVertex> alreadyVisited = new HashSet<ExecutionVertex>();
  
  		while (it.hasNext()) {
  
  			final ExecutionGroupVertex groupVertex = it.next();
  
  			// We only look at input vertices first
  			if (!groupVertex.isInputVertex()) {
  				continue;
  			}
  
  			final Iterator<ExecutionVertex> vertexIt = groupVertex.iterator();
  			while (vertexIt.hasNext()) {
  
  				final ExecutionVertex vertex = vertexIt.next();
  				reconstructExecutionPipeline(vertex, true, alreadyVisited);
  			}
  		}
  
  		it = this.stageMembers.iterator();
  		alreadyVisited.clear();
  
  		while (it.hasNext()) {
  
  			final ExecutionGroupVertex groupVertex = it.next();
  
  			// We only look at input vertices first
  			if (!groupVertex.isOutputVertex()) {
  				continue;
  			}
  
  			final Iterator<ExecutionVertex> vertexIt = groupVertex.iterator();
  			while (vertexIt.hasNext()) {
  
  				final ExecutionVertex vertex = vertexIt.next();
  				reconstructExecutionPipeline(vertex, false, alreadyVisited);
  			}
  		}
  	}
docs: Reconstructs the execution pipelines for this execution stage.