/** {@inheritDoc} */ @Override public final Map<? extends GridComputeJob, GridNode> map(List<GridNode> subgrid, T arg) throws GridException { assert subgrid != null; assert !subgrid.isEmpty(); Collection<? extends GridComputeJob> jobs = split(subgrid.size(), arg); if (F.isEmpty(jobs)) throw new GridException("Split returned no jobs."); Map<GridComputeJob, GridNode> map = U.newHashMap(jobs.size()); for (GridComputeJob job : jobs) { GridNode old = map.put(job, balancer.getBalancedNode(job, null)); if (old != null) throw new GridException("Failed to map task (same job instance is being mapped more than once) " + "[job=" + job + ", task=" + this + ']'); } return map; } }