void (int upNodeIndex, int downNodeIndex, CommitId downCommitId) { int end = myNodeToEdgeIndex[upNodeIndex + 1]; GraphCommit<CommitId> upCommit = myCommits.get(upNodeIndex); List<CommitId> parentHashIndices = upCommit.getParents(); for (int i = 0; i < parentHashIndices.size(); i++) { if (parentHashIndices.get(i).equals(downCommitId)) { int offset = parentHashIndices.size() - i; int edgeIndex = end - offset; if (myLongEdges[edgeIndex] == -1) { myLongEdges[edgeIndex] = downNodeIndex; return; } else { throw new IllegalStateException("Edge was set early!. Up node: " + upNodeIndex + ", down node: " + downNodeIndex); } } } throw new IllegalStateException("Not found underdone edges for node: " + upNodeIndex + ". Adjacent down node: " + downNodeIndex); }