Index: core/src/main/java/org/apache/hama/bsp/sync/ZooKeeperSyncClientImpl.java =================================================================== --- core/src/main/java/org/apache/hama/bsp/sync/ZooKeeperSyncClientImpl.java (revision 1502992) +++ core/src/main/java/org/apache/hama/bsp/sync/ZooKeeperSyncClientImpl.java (working copy) @@ -21,6 +21,7 @@ import java.net.InetSocketAddress; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; @@ -280,6 +281,7 @@ constructKey(taskId.getJobID(), "peers"), this); allPeers = var.toArray(new String[var.size()]); + TreeMap taskAttemptSortedMap = new TreeMap(); for (String s : allPeers) { byte[] data = zk.getData(constructKey(taskId.getJobID(), "peers", s), this, null); @@ -287,13 +289,17 @@ boolean result = getValueFromBytes(data, thatTask); if (result) { - LOG.debug("TASK mapping from zookeeper: " + thatTask + " ID:" - + thatTask.getTaskID().getId() + " : " + s); - sortedMap.put(thatTask.getTaskID().getId(), s); + taskAttemptSortedMap.put(thatTask, s); } - } - + for (Map.Entry entry : taskAttemptSortedMap + .entrySet()) { + TaskAttemptID thatTask = entry.getKey(); + String s = entry.getValue(); + LOG.debug("TASK mapping from zookeeper: " + thatTask + " ID:" + + thatTask.getTaskID().getId() + " : " + s); + sortedMap.put(thatTask.getTaskID().getId(), s); + } } catch (Exception e) { LOG.error(e); throw new RuntimeException("All peer names could not be retrieved!");