Fix the bug of reading diff entries.

This commit is contained in:
Kui LIU
2017-12-22 14:06:05 +01:00
parent affe46e284
commit fcb7a3d101
2 changed files with 16 additions and 7 deletions
@@ -169,9 +169,11 @@ public class DiffEntryReader {
int buggyHunkSize = 0;
int fixedHunkSize = 0;
StringBuilder hunk = new StringBuilder();
boolean sourceCode = false;
while ((line = reader.readLine()) != null) {
if (RegExp.filterSignal(line.trim())) {
sourceCode = true;
if (hunk.length() > 0) {
if (buggyStartLine > 0) {
DiffEntryHunk diffEntryHunk = new DiffEntryHunk(buggyStartLine, fixedStartLine, buggyRange, fixedRange);
@@ -181,9 +183,13 @@ public class DiffEntryReader {
diffentryHunks.add(diffEntryHunk);
}
hunk.setLength(0);
buggyStartLine = 0;
buggyRange = 0;
fixedStartLine = 0;
fixedRange = 0;
buggyHunkSize = 0;
fixedHunkSize = 0;
}
buggyHunkSize = 0;
fixedHunkSize = 0;
int plusIndex = line.indexOf("+");
String lineNum = line.substring(4, plusIndex);
String[] nums = lineNum.split(",");
@@ -200,25 +206,24 @@ public class DiffEntryReader {
fixedRange = Integer.parseInt(nums2[1].trim());
}
continue;
} else {
} else if (sourceCode) {
if (line.startsWith("-")) {
buggyHunkSize ++;
} else if (line.startsWith("+")) {
fixedHunkSize ++;
}
hunk.append(line + "\n");
}
hunk.append(line + "\n");
}
if (buggyStartLine > 0) {
if (buggyStartLine > 0 && hunk.length() > 0) {
DiffEntryHunk diffEntryHunk = new DiffEntryHunk(buggyStartLine, fixedStartLine, buggyRange, fixedRange);
diffEntryHunk.setHunk(hunk.toString());
diffEntryHunk.setBuggyHunkSize(buggyHunkSize);
diffEntryHunk.setFixedHunkSize(fixedHunkSize);
diffentryHunks.add(diffEntryHunk);
hunk.setLength(0);
}
hunk.setLength(0);
} catch (IOException e) {
e.printStackTrace();
} finally {
@@ -44,6 +44,10 @@ public class HierarchicalActionSet implements Comparable<HierarchicalActionSet>
this.node = node;
}
public void setAstNodeType(String astNodeType) {
this.astNodeType = astNodeType;
}
public String getAstNodeType() {
return astNodeType;
}