Files
fixminer_source/difffile
T
2019-03-03 11:42:44 +01:00

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);
}