diff --git a/src/org/ntlab/deltaViewer/DeltaAliasCollector.java b/src/org/ntlab/deltaViewer/DeltaAliasCollector.java index 502836e..b5a4369 100644 --- a/src/org/ntlab/deltaViewer/DeltaAliasCollector.java +++ b/src/org/ntlab/deltaViewer/DeltaAliasCollector.java @@ -303,23 +303,23 @@ private Map> collectNewToOldMethodExecutionMap(List oldAliasList, List newAliasList) { Map> newToOldMethodExecMap = new HashMap<>(); int oldIdx = 0, newIdx = 0; - Alias lastMatchedAlias = null; + Alias lastMatchedNextAlias = newAliasList.get(newIdx); for (oldIdx = 0; oldIdx < oldAliasList.size(); oldIdx++) { Alias oldAlias = oldAliasList.get(oldIdx); Alias newAlias = newAliasList.get(newIdx); if (oldAlias.equals(newAlias)) { - lastMatchedAlias = newAlias; - newIdx++; + if (newIdx + 1 < newAliasList.size()) newIdx++; + lastMatchedNextAlias = newAliasList.get(newIdx); } else { MethodExecution oldMethodExec = oldAlias.getMethodExecution(); - MethodExecution newMethodExec = lastMatchedAlias.getMethodExecution(); + MethodExecution newMethodExec = lastMatchedNextAlias.getMethodExecution(); if (!newToOldMethodExecMap.containsKey(newMethodExec)) { newToOldMethodExecMap.put(newMethodExec, new HashSet<>()); newToOldMethodExecMap.get(newMethodExec).add(oldMethodExec); } else { newToOldMethodExecMap.get(newMethodExec).add(oldMethodExec); } - if (!oldAliasList.contains(newAlias)) newIdx++; + if (!oldAliasList.contains(newAlias) && newIdx + 1 < newAliasList.size()) newIdx++; } } return newToOldMethodExecMap;