Fix the bug of reading diff entries.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user