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 buggyHunkSize = 0;
int fixedHunkSize = 0; int fixedHunkSize = 0;
StringBuilder hunk = new StringBuilder(); StringBuilder hunk = new StringBuilder();
boolean sourceCode = false;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
if (RegExp.filterSignal(line.trim())) { if (RegExp.filterSignal(line.trim())) {
sourceCode = true;
if (hunk.length() > 0) { if (hunk.length() > 0) {
if (buggyStartLine > 0) { if (buggyStartLine > 0) {
DiffEntryHunk diffEntryHunk = new DiffEntryHunk(buggyStartLine, fixedStartLine, buggyRange, fixedRange); DiffEntryHunk diffEntryHunk = new DiffEntryHunk(buggyStartLine, fixedStartLine, buggyRange, fixedRange);
@@ -181,9 +183,13 @@ public class DiffEntryReader {
diffentryHunks.add(diffEntryHunk); diffentryHunks.add(diffEntryHunk);
} }
hunk.setLength(0); hunk.setLength(0);
buggyStartLine = 0;
buggyRange = 0;
fixedStartLine = 0;
fixedRange = 0;
buggyHunkSize = 0;
fixedHunkSize = 0;
} }
buggyHunkSize = 0;
fixedHunkSize = 0;
int plusIndex = line.indexOf("+"); int plusIndex = line.indexOf("+");
String lineNum = line.substring(4, plusIndex); String lineNum = line.substring(4, plusIndex);
String[] nums = lineNum.split(","); String[] nums = lineNum.split(",");
@@ -200,25 +206,24 @@ public class DiffEntryReader {
fixedRange = Integer.parseInt(nums2[1].trim()); fixedRange = Integer.parseInt(nums2[1].trim());
} }
continue; continue;
} else { } else if (sourceCode) {
if (line.startsWith("-")) { if (line.startsWith("-")) {
buggyHunkSize ++; buggyHunkSize ++;
} else if (line.startsWith("+")) { } else if (line.startsWith("+")) {
fixedHunkSize ++; 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 diffEntryHunk = new DiffEntryHunk(buggyStartLine, fixedStartLine, buggyRange, fixedRange);
diffEntryHunk.setHunk(hunk.toString()); diffEntryHunk.setHunk(hunk.toString());
diffEntryHunk.setBuggyHunkSize(buggyHunkSize); diffEntryHunk.setBuggyHunkSize(buggyHunkSize);
diffEntryHunk.setFixedHunkSize(fixedHunkSize); diffEntryHunk.setFixedHunkSize(fixedHunkSize);
diffentryHunks.add(diffEntryHunk); diffentryHunks.add(diffEntryHunk);
hunk.setLength(0);
} }
hunk.setLength(0);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {
@@ -44,6 +44,10 @@ public class HierarchicalActionSet implements Comparable<HierarchicalActionSet>
this.node = node; this.node = node;
} }
public void setAstNodeType(String astNodeType) {
this.astNodeType = astNodeType;
}
public String getAstNodeType() { public String getAstNodeType() {
return astNodeType; return astNodeType;
} }