From 3160b462aecce2359c91443d3a3bab81fbb5e303 Mon Sep 17 00:00:00 2001 From: Kui LIU Date: Thu, 14 Sep 2017 16:05:47 +0200 Subject: [PATCH] Read violations with Null_Violation_Hunk or Illegal_Line_Position. --- .../ParseFixPatternWorker.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java b/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java index aeb36ef..908a05a 100644 --- a/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java +++ b/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java @@ -6,6 +6,7 @@ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.StringReader; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; @@ -22,6 +23,7 @@ import akka.actor.UntypedActor; import akka.japi.Creator; import edu.lu.uni.serval.FixPatternParser.RunnableParser; import edu.lu.uni.serval.FixPatternParser.violations.FixedViolationHunkParser; +import edu.lu.uni.serval.FixPatternParser.violations.Violation; import edu.lu.uni.serval.config.Configuration; import edu.lu.uni.serval.utils.FileHelper; @@ -99,6 +101,9 @@ public class ParseFixPatternWorker extends UntypedActor { // parser = new CommitPatchSingleStatementParser(); // } FixedViolationHunkParser parser = new FixedViolationHunkParser(positionFile); + // Read violations with Null_Violation_Hunk or Illegal_Line_Position + List uselessViolations = readUselessViolations("logs/FixedViolationCodeParseResults.log"); + parser.setUselessViolations(uselessViolations); final ExecutorService executor = Executors.newSingleThreadExecutor(); // schedule the work @@ -188,6 +193,38 @@ public class ParseFixPatternWorker extends UntypedActor { } } + private List readUselessViolations(String filePath) { + List uselessViolations = new ArrayList<>(); + + String content = FileHelper.readFile(filePath); + BufferedReader reader = new BufferedReader(new StringReader(content)); + String line = null; + try { + while ((line = reader.readLine()) != null) { + if (line.startsWith("#")) { + String[] elements = line.split(":"); + String fileName = elements[1]; + int startLine = Integer.parseInt(elements[2]); + int endLine = Integer.parseInt(elements[3]); + String violationType = elements[4]; + + Violation violation = new Violation(startLine, endLine, violationType); + violation.setFileName(fileName); + uselessViolations.add(violation); + } + } + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return uselessViolations; + } + private int countAlarms(File positionFile) { int counter = 0; String content = FileHelper.readFile(positionFile);