Fix the bug of clearing INS action's subactions.

This commit is contained in:
Kui LIU
2017-08-11 18:40:19 +02:00
parent ce630f2402
commit 3c7ac0a721
@@ -236,7 +236,8 @@ public class HunkActionFilter {
private List<Move> getFirstAndLastMoveAction(HierarchicalActionSet gumTreeResult) { private List<Move> getFirstAndLastMoveAction(HierarchicalActionSet gumTreeResult) {
List<Move> firstAndLastMoveActions = new ArrayList<>(); List<Move> firstAndLastMoveActions = new ArrayList<>();
List<HierarchicalActionSet> actions = gumTreeResult.getSubActions(); List<HierarchicalActionSet> actions = new ArrayList<>();
actions.addAll(gumTreeResult.getSubActions());
if (actions.size() == 0) { if (actions.size() == 0) {
return null; return null;
} }
@@ -368,12 +369,12 @@ public class HunkActionFilter {
} }
for (Violation violation : violations) { for (Violation violation : violations) {
int startLine = violation.getStartLineNum(); int violationStartLine = violation.getStartLineNum();
int endLine = violation.getEndLineNum(); int violationEndLine = violation.getEndLineNum();
int bugStartLine = violation.getBugStartLineNum(); int bugHunkStartLine = violation.getBugStartLineNum();
int bugEndLine = violation.getBugEndLineNum(); int bugHunkEndLine = violation.getBugEndLineNum();
int fixStartLine = violation.getFixStartLineNum(); int fixHunkStartLine = violation.getFixStartLineNum();
int fixEndLine = violation.getFixEndLineNum(); int fixHunkEndLine = violation.getFixEndLineNum();
for (HierarchicalActionSet actionSet : actionSets) { for (HierarchicalActionSet actionSet : actionSets) {
int actionBugStartLine = actionSet.getBugStartLineNum(); int actionBugStartLine = actionSet.getBugStartLineNum();
@@ -386,21 +387,23 @@ public class HunkActionFilter {
String actionStr = actionSet.getActionString(); String actionStr = actionSet.getActionString();
if (actionStr.startsWith("INS")) { if (actionStr.startsWith("INS")) {
if (fixStartLine <= actionFixStartLine && actionFixEndLine <= fixEndLine) { if (fixHunkStartLine <= actionFixStartLine && actionFixEndLine <= fixHunkEndLine) {
if (actionBugStartLine != 0) { if (actionBugStartLine != 0) {
if (startLine <= actionBugEndLine && endLine >= actionBugStartLine) { if (violationStartLine <= actionBugEndLine && violationEndLine >= actionBugStartLine) {
violation.getActionSets().add(actionSet); violation.getActionSets().add(actionSet);
} }
} else { } else {
if (isRanged(actionSet, violation)) violation.getActionSets().add(actionSet); if (isRanged(actionSet, violation)) {
violation.getActionSets().add(actionSet);
}
} }
} }
} else { } else {
if (bugEndLine < actionBugStartLine) { if (bugHunkEndLine < actionBugStartLine) {
break; break;
} }
if (bugStartLine <= actionBugStartLine && actionBugEndLine <= bugEndLine) { if (bugHunkStartLine <= actionBugStartLine && actionBugEndLine <= bugHunkEndLine) {
if (startLine <= actionBugEndLine && endLine >= actionBugStartLine) { if (violationStartLine <= actionBugEndLine && violationEndLine >= actionBugStartLine) {
violation.getActionSets().add(actionSet); violation.getActionSets().add(actionSet);
} }
} }
@@ -582,7 +585,7 @@ public class HunkActionFilter {
} }
private int setLineNumbers(HierarchicalActionSet actionSet, CompilationUnit prevUnit, CompilationUnit revUnit) { private int setLineNumbers(HierarchicalActionSet actionSet, CompilationUnit prevUnit, CompilationUnit revUnit) {
int actionBugStartLine = actionSet.getBugStartLineNum(); int actionBugStartLine;
int actionBugEndLine; int actionBugEndLine;
int actionFixStartLine; int actionFixStartLine;
int actionFixEndLine; int actionFixEndLine;