211 lines
9.3 KiB
Plaintext
211 lines
9.3 KiB
Plaintext
diff --git a/.gitignore b/.gitignore
|
|
index 24cae48..27c7ba3 100644
|
|
--- a/.gitignore
|
|
+++ b/.gitignore
|
|
@@ -14,6 +14,7 @@ GumTreeInput/
|
|
GumTreeInput1/
|
|
GumTreeOutput1/
|
|
GumTreeResults/
|
|
+.idea/*
|
|
|
|
*/Test.java
|
|
*TestParser.java
|
|
diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java
|
|
index 4d885ea..eb1eca1 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java
|
|
@@ -1,5 +1,9 @@
|
|
package edu.lu.uni.serval.FixPatternParser.violations;
|
|
|
|
+import com.github.gumtreediff.actions.model.Delete;
|
|
+import com.github.gumtreediff.actions.model.Insert;
|
|
+import com.github.gumtreediff.actions.model.Move;
|
|
+import com.github.gumtreediff.actions.model.Update;
|
|
import edu.lu.uni.serval.gumtree.regroup.HierarchicalActionSet;
|
|
|
|
import java.io.*;
|
|
@@ -30,27 +34,29 @@ public class FixedViolationHunkParser extends FixedViolationParser {
|
|
public void parseFixPatterns(File prevFile, File revFile, File diffentryFile,String project) {
|
|
List<HierarchicalActionSet> actionSets = parseChangedSourceCodeWithGumTree2(prevFile, revFile);
|
|
if (actionSets.size() != 0) {
|
|
-// boolean isUpdate =
|
|
-// actionSets.stream().allMatch(p -> p.getAction() instanceof Update);
|
|
-// boolean isInsert =
|
|
-// actionSets.stream().allMatch(p -> p.getAction() instanceof Insert);
|
|
-// boolean isDelete =
|
|
-// actionSets.stream().allMatch(p -> p.getAction() instanceof Delete);
|
|
-// boolean isMove =
|
|
-// actionSets.stream().allMatch(p -> p.getAction() instanceof Move);
|
|
int hunkSet = 0;
|
|
// if (isUpdate || isInsert || isDelete || isMove) {
|
|
for (HierarchicalActionSet actionSet : actionSets) {
|
|
- String folder = "/ALL/";
|
|
-// if (isUpdate) {
|
|
-// folder = "/UPD/";
|
|
-// } else if (isDelete) {
|
|
-// folder = "/DEL/";
|
|
-// } else if (isInsert) {
|
|
-// folder = "/INS/";
|
|
-// } else if (isMove) {
|
|
-// folder = "/MOV/";
|
|
-// }
|
|
+ boolean isUpdate =
|
|
+ actionSets.stream().allMatch(p -> p.getAction() instanceof Update);
|
|
+ boolean isInsert =
|
|
+ actionSets.stream().allMatch(p -> p.getAction() instanceof Insert);
|
|
+ boolean isDelete =
|
|
+ actionSets.stream().allMatch(p -> p.getAction() instanceof Delete);
|
|
+ boolean isMove =
|
|
+ actionSets.stream().allMatch(p -> p.getAction() instanceof Move);
|
|
+ String folder = "/MIX/";
|
|
+ if (isUpdate) {
|
|
+ folder = "/UPD/";
|
|
+ } else if (isDelete) {
|
|
+ folder = "/DEL/";
|
|
+ } else if (isInsert) {
|
|
+ folder = "/INS/";
|
|
+ } else if (isMove) {
|
|
+ folder = "/MOV/";
|
|
+ } else{
|
|
+ folder = "/MIX/";
|
|
+ }
|
|
|
|
|
|
FileOutputStream f = null;
|
|
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 3084dbe..ffe1b01 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/MultipleThreadsParser/ParseFixPatternWorker.java
|
|
@@ -61,7 +61,7 @@ public class ParseFixPatternWorker extends UntypedActor {
|
|
int testInfos = 0;
|
|
int timeouts = 0;
|
|
StringBuilder builder = new StringBuilder();
|
|
-
|
|
+// log.info("Work queue size " + files.size());
|
|
for (MessageFile msgFile : files) {
|
|
File revFile = msgFile.getRevFile();
|
|
File prevFile = msgFile.getPrevFile();
|
|
diff --git a/src/main/java/edu/lu/uni/serval/config/Configuration.java b/src/main/java/edu/lu/uni/serval/config/Configuration.java
|
|
index 4421c72..7162180 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/config/Configuration.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/config/Configuration.java
|
|
@@ -2,6 +2,6 @@ package edu.lu.uni.serval.config;
|
|
|
|
public class Configuration {
|
|
|
|
- public static final long SECONDS_TO_WAIT = 900L;
|
|
+ public static final long SECONDS_TO_WAIT = 90000L;
|
|
|
|
}
|
|
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/EnhancedASTDiff.java b/src/main/java/edu/lu/uni/serval/fixminer/EnhancedASTDiff.java
|
|
index 43895e0..066b07d 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/fixminer/EnhancedASTDiff.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/fixminer/EnhancedASTDiff.java
|
|
@@ -5,7 +5,7 @@ import akka.actor.ActorSystem;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.MessageFile;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.ParseFixPatternActor;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.WorkMessage;
|
|
-import edu.lu.uni.serval.utils.FileHelper;
|
|
+import edu.lu.uni.serval.FixPattern.utils.FileHelper;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
@@ -13,6 +13,7 @@ import java.io.File;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
+import java.util.Locale;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Stream;
|
|
|
|
@@ -31,6 +32,7 @@ public class EnhancedASTDiff {
|
|
Stream<File> stream = Arrays.stream(listOfFiles);
|
|
List<File> folders = stream
|
|
.filter(x -> !x.getName().startsWith("."))
|
|
+// .filter(x -> x.getName().startsWith("JDT"))
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
@@ -49,11 +51,11 @@ public class EnhancedASTDiff {
|
|
FileHelper.createDirectory(GUM_TREE_OUTPUT + "/INS");
|
|
FileHelper.createDirectory(GUM_TREE_OUTPUT + "/DEL");
|
|
FileHelper.createDirectory(GUM_TREE_OUTPUT + "/MOV");
|
|
- FileHelper.createDirectory(GUM_TREE_OUTPUT + "/ALL");
|
|
+ FileHelper.createDirectory(GUM_TREE_OUTPUT + "/MIX");
|
|
|
|
|
|
int a = 0;
|
|
-
|
|
+ log.info("Work queue size " + msgFiles.size());
|
|
ActorSystem system = null;
|
|
ActorRef parsingActor = null;
|
|
final WorkMessage msg = new WorkMessage(0, msgFiles);
|
|
@@ -80,6 +82,11 @@ public class EnhancedASTDiff {
|
|
if (revFiles.length >= 0) {
|
|
for (File revFile : revFiles) {
|
|
String fileName = revFile.getName();
|
|
+ if(fileName.toLowerCase(Locale.ENGLISH).contains("test")){
|
|
+ log.info(fileName);
|
|
+ continue;
|
|
+ }
|
|
+
|
|
File prevFile = new File(gumTreeInput + "prevFiles/prev_" + fileName);// previous file
|
|
fileName = fileName.replace(".java", ".txt");
|
|
File diffentryFile = new File(gumTreeInput + "DiffEntries/" + fileName); // DiffEntry file
|
|
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/TestHunkParserSingleFile.java b/src/main/java/edu/lu/uni/serval/fixminer/TestHunkParserSingleFile.java
|
|
index 44575a7..88f36c6 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/fixminer/TestHunkParserSingleFile.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/fixminer/TestHunkParserSingleFile.java
|
|
@@ -5,7 +5,7 @@ import akka.actor.ActorSystem;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.MessageFile;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.ParseFixPatternActor;
|
|
import edu.lu.uni.serval.MultipleThreadsParser.WorkMessage;
|
|
-import edu.lu.uni.serval.utils.FileHelper;
|
|
+import edu.lu.uni.serval.FixPattern.utils.FileHelper;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/cluster/CallShell.java b/src/main/java/edu/lu/uni/serval/fixminer/cluster/CallShell.java
|
|
index 9c1d05d..3dceda0 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/fixminer/cluster/CallShell.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/fixminer/cluster/CallShell.java
|
|
@@ -37,7 +37,7 @@ public class CallShell {
|
|
}
|
|
// Thread.sleep(Integer.valueOf(serverWait));
|
|
|
|
- String cmd = "redis-cli -p %s ping";
|
|
+ String cmd = "bash source activate redisEnv && redis-cli -p %s ping";
|
|
String cmd1 = String.format(cmd,Integer.valueOf(port));
|
|
runPing(cmd1);
|
|
|
|
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/cluster/StoreEDiffInCache.java b/src/main/java/edu/lu/uni/serval/fixminer/cluster/StoreEDiffInCache.java
|
|
index 39bba51..8657dce 100644
|
|
--- a/src/main/java/edu/lu/uni/serval/fixminer/cluster/StoreEDiffInCache.java
|
|
+++ b/src/main/java/edu/lu/uni/serval/fixminer/cluster/StoreEDiffInCache.java
|
|
@@ -52,13 +52,15 @@ public class StoreEDiffInCache {
|
|
.filter(x -> x.getName().startsWith("UPD") ||
|
|
x.getName().startsWith("INS") ||
|
|
x.getName().startsWith("DEL") ||
|
|
+ x.getName().startsWith("MIX") ||
|
|
x.getName().startsWith("MOV"))
|
|
.collect(Collectors.toList());
|
|
File[] files1 = fs.get(0).listFiles();
|
|
File[] files2 = fs.get(1).listFiles();
|
|
File[] files3 = fs.get(2).listFiles();
|
|
File[] files4 = fs.get(3).listFiles();
|
|
- dumps = Stream.of(files1, files2, files3,files4).flatMap(Stream::of).toArray(File[]::new);
|
|
+ File[] files5 = fs.get(4).listFiles();
|
|
+ dumps = Stream.of(files1, files2, files3,files4,files5).flatMap(Stream::of).toArray(File[]::new);
|
|
}else{
|
|
fs = fileStream
|
|
.filter(x -> x.getName().startsWith(operation))
|
|
@@ -70,7 +72,7 @@ public class StoreEDiffInCache {
|
|
for (File f : dumps) {
|
|
String name = f.getName();
|
|
|
|
- String key = pjName + "/"+ operation+"/" + name;
|
|
+ String key = pjName + f.getPath().replace(pj.getPath(),"");
|
|
String result = key +","+f.getPath();
|
|
workList.add(result);
|
|
}
|