diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 13d317f..de3de08 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,7 +7,16 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index e79da7e..fa513c6 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -1,6 +1,13 @@
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 4b661a5..0918945 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -5,10 +5,11 @@
-
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..14ca6ef 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -2,5 +2,6 @@
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c15c296..f597035 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,161 +4,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -178,25 +41,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -204,61 +48,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -277,8 +78,8 @@
-
-
+
+
@@ -289,17 +90,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -313,37 +215,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -354,111 +225,176 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
29
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
50
-
-
- file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
- 62
-
-
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
74
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/EDiffHunkParser.java
56
-
-
- file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
- 61
-
-
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
95
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
56
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
81
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java
- 276
-
+ 265
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
107
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/AkkaTreeParser.java
44
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/EDiffHunkParser.java
51
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
98
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
64
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/utils/ClusterToPattern.java
28
-
file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
95
-
+
+ file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/TestRealCases.java
+ 387
+
+
+
+ file://$PROJECT_DIR$/../gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java
+ 133
+
+
+
+ file://$PROJECT_DIR$/../gumtree/gen.srcml/src/main/java/com/github/gumtreediff/gen/srcml/AbstractSrcmlTreeGenerator.java
+ 456
+
+
+
+ file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
+ 81
+
+
+
+ file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
+ 40
+
+
+
+ file://$PROJECT_DIR$/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
+ 42
+
+
@@ -514,384 +450,4 @@ String key = split[0] + "/"+split[1]+"/" + dist2load;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1.7
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index ebaa43d..6a5c552 100755
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
UTF-8
- 2.4.11
+ 2.4.17
1.1.2
1.7.7
@@ -25,12 +25,6 @@
1.2
-
-
-
-
-
-
com.typesafe.akka
@@ -41,18 +35,21 @@
com.github.gumtreediff
core
+ compile
2.0.0-SNAPSHOT
com.github.gumtreediff
gen.jdt
+ compile
2.0.0-SNAPSHOT
com.github.gumtreediff
gen.srcml
+ compile
2.0.0-SNAPSHOT
@@ -75,18 +72,11 @@
${logback.version}
-
-
-
-
-
-
-
junit
junit
4.12
- test
+
@@ -102,65 +92,14 @@
1.3
-
-
-
-
-
-
- junit
- junit
- 4.11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.apache.commons
- commons-math3
- 3.6.1
-
-
-
-
- com.thoughtworks.xstream
- xstream
- 1.3.1
-
commons-io
commons-io
2.4
-
- org.redisson
- redisson
- 3.3.0
-
-
- org.eclipse.jetty
- jetty-util
- 9.4.4.v20170414
- compile
-
-
- com.esotericsoftware
- kryo
- 4.0.2
-
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java b/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
index edbc261..6f5d982 100755
--- a/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
+++ b/src/main/java/edu/lu/uni/serval/fixminer/Launcher.java
@@ -22,7 +22,7 @@ public class Launcher {
Properties appProps = new Properties();
- String appConfigPath = "/Users/anilkoyuncu/projects/fixminer/fixminer_source/src/main/resource/app.properties";
+ String appConfigPath = "src/main/resource/app.properties";
// String appConfigPath = args[0];
appProps.load(new FileInputStream(appConfigPath));
@@ -40,12 +40,12 @@ public class Launcher {
String redisPath = appProps.getProperty("redisPath","FORKJOIN");
String srcMLPath = appProps.getProperty("srcMLPath","FORKJOIN");
- String parameter = args[2];
-// String parameter = "L1";
+// String parameter = args[2];
+ String parameter = "L1";
// String parameter = "if";
// String parameter = "add";
- String jobType = args[1];
-// String jobType = "RICHEDITSCRIPT";
+// String jobType = args[1];
+ String jobType = "RICHEDITSCRIPT";
// String jobType = "LOAD";
// String jobType = "COMPARE";
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java b/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
index 15bf6f3..796b487 100755
--- a/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
+++ b/src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java
@@ -196,226 +196,226 @@ public class CompareTrees {
return true;
}
- public static void coreCompare(String pairName, String treeType,JedisPool innerPool,ArrayList samePairs,ArrayList errorPairs, HashMap filenames,JedisPool outerPool ) {
-
-// if (samePairs.size() % 1000 == 0) {
-// log.info("Same pairs size "+samePairs.size());
-// }
-
- ITree oldTree = null;
- ITree newTree = null;
- Pair oldPair = null;
- Pair newPair = null;
- String matchKey = null;
-
- innerPool = outerPool;
-
- try {
-
- String[] split = pairName.split("/");
-
-
- String i = split[1];
- String j = split[2];
- String keyName = split[0];
- matchKey = keyName + "/" + (String.valueOf(i)) + "/" + String.valueOf(j);
-// jedis.select(0);
-// Set keys = jedis.keys(matchKey);
-// if (keys.size() > 0) {
-// jedis.del(matchKey);
-// } else {
-// return;
-// }
-// jedis.srem("pairs",matchKey);
-// JedisPool outerPool = null;
- switch (treeType) {
- case "single":
-
-// String oldShapeTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"shapeTree");
-// String newShapeTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"shapeTree");
+// public static void coreCompare(String pairName, String treeType,JedisPool innerPool,ArrayList samePairs,ArrayList errorPairs, HashMap filenames,JedisPool outerPool ) {
//
-// String oldActionTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"actionTree");
-// String newActionTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"actionTree");
+//// if (samePairs.size() % 1000 == 0) {
+//// log.info("Same pairs size "+samePairs.size());
+//// }
//
-// String oldTargetTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"targetTree");
-// String newTargetTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"targetTree");
+// ITree oldTree = null;
+// ITree newTree = null;
+// Pair oldPair = null;
+// Pair newPair = null;
+// String matchKey = null;
+//
+// innerPool = outerPool;
+//
+// try {
+//
+// String[] split = pairName.split("/");
//
//
-// if(oldShapeTree.equals(newShapeTree)){
-// if(oldActionTree.equals(newActionTree)){
-// if(oldTargetTree.equals(newTargetTree)){
-// samePairs.add(matchKey);
-// }
-// }
-// }
- return;
-// break;
-
-
- case "shape":
- oldTree = EDiffHelper.getShapes(keyName, i, outerPool,filenames);
- newTree = EDiffHelper.getShapes(keyName, j, outerPool,filenames);
- break;
- case "action":
-
- oldPair = EDiffHelper.getActions(keyName, i, outerPool, filenames);
- newPair = EDiffHelper.getActions(keyName, j, outerPool, filenames);
- oldTree = oldPair.getValue0();
- newTree = newPair.getValue0();
-
-
- break;
- case "token":
- oldTree = EDiffHelper.getTokens(keyName, i, outerPool, filenames);
- newTree = EDiffHelper.getTokens(keyName, j, outerPool, filenames);
-
- String oldTokens = EDiffHelper.getNames2(oldTree);
- String newTokens = EDiffHelper.getNames2(newTree);
-
- JaroWinklerDistance jwd = new JaroWinklerDistance();
-
-
- Double overallSimi = Double.valueOf(0);
-
- if (!(oldTokens.trim().isEmpty() || newTokens.trim().isEmpty())) {
- overallSimi = jwd.apply(oldTokens, newTokens);
-
- }
-
-
- int retval = Double.compare(overallSimi, Double.valueOf(1));
-
- if (retval >= 0) {
- String result = i + "," + j + "," + String.join(",", oldTokens);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-// try (Jedis jedis = innerPool.getResource()) {
-//// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-// }
- samePairs.add(matchKey);
-// try (Jedis jedis = innerPool.getResource()) {
-//// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-// }
- }
-// jedis.select(0);
+// String i = split[1];
+// String j = split[2];
+// String keyName = split[0];
+// matchKey = keyName + "/" + (String.valueOf(i)) + "/" + String.valueOf(j);
+//// jedis.select(0);
+//// Set keys = jedis.keys(matchKey);
+//// if (keys.size() > 0) {
+//// jedis.del(matchKey);
+//// } else {
+//// return;
+//// }
//// jedis.srem("pairs",matchKey);
-// jedis.del(matchKey);
-
- return;
- default:
- break;
- }
-
-
-
- if(oldTree.toStaticHashString().equals(newTree.toStaticHashString())){
- String editDistance = "0";
- String result = i + "," + j + "," + editDistance;
- if (editDistance.equals("0")) {
-
- if (treeType.equals("action")) {
- HierarchicalActionSet oldProject = oldPair.getValue1();
- HierarchicalActionSet newProject = newPair.getValue1();
-
- oldTree = EDiffHelper.getTargets(oldProject);
- newTree = EDiffHelper.getTargets(newProject);
- if (oldTree.toStaticHashString().equals(newTree.toStaticHashString())) {
- samePairs.add(matchKey);
-// try (Jedis jedis = innerPool.getResource()) {
-//// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
+//// JedisPool outerPool = null;
+// switch (treeType) {
+// case "single":
//
-// }
- }
- } else {
- samePairs.add(matchKey);
-// try (Jedis jedis = innerPool.getResource()) {
-//// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-//
-// }
- }
- }
-
-
- }
-// if(oldTree.toString().equals(newTree.toString())) {
-// Matcher m = Matchers.getInstance().getMatcher(oldTree, newTree);
-// m.match();
+//// String oldShapeTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"shapeTree");
+//// String newShapeTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"shapeTree");
+////
+//// String oldActionTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"actionTree");
+//// String newActionTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"actionTree");
+////
+//// String oldTargetTree = EDiffHelper.getTreeString(keyName, i, outerPool, filenames,"targetTree");
+//// String newTargetTree = EDiffHelper.getTreeString(keyName, j, outerPool, filenames,"targetTree");
+////
+////
+//// if(oldShapeTree.equals(newShapeTree)){
+//// if(oldActionTree.equals(newActionTree)){
+//// if(oldTargetTree.equals(newTargetTree)){
+//// samePairs.add(matchKey);
+//// }
+//// }
+//// }
+// return;
+//// break;
//
//
-// ActionGenerator ag = new ActionGenerator(oldTree, newTree, m.getMappings());
-// ag.generate();
-// List actions = ag.getActions();
+// case "shape":
+// oldTree = EDiffHelper.getShapes(keyName, i, outerPool,filenames);
+// newTree = EDiffHelper.getShapes(keyName, j, outerPool,filenames);
+// break;
+// case "action":
+//
+// oldPair = EDiffHelper.getActions(keyName, i, outerPool, filenames);
+// newPair = EDiffHelper.getActions(keyName, j, outerPool, filenames);
+// oldTree = oldPair.getValue0();
+// newTree = newPair.getValue0();
//
//
-// String editDistance;
+// break;
+// case "token":
+// oldTree = EDiffHelper.getTokens(keyName, i, outerPool, filenames);
+// newTree = EDiffHelper.getTokens(keyName, j, outerPool, filenames);
//
-// editDistance = String.valueOf(actions.size());
+// String oldTokens = EDiffHelper.getNames2(oldTree);
+// String newTokens = EDiffHelper.getNames2(newTree);
+//
+// JaroWinklerDistance jwd = new JaroWinklerDistance();
+//
+//
+// Double overallSimi = Double.valueOf(0);
+//
+// if (!(oldTokens.trim().isEmpty() || newTokens.trim().isEmpty())) {
+// overallSimi = jwd.apply(oldTokens, newTokens);
+//
+// }
+//
+//
+// int retval = Double.compare(overallSimi, Double.valueOf(1));
+//
+// if (retval >= 0) {
+// String result = i + "," + j + "," + String.join(",", oldTokens);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+//// try (Jedis jedis = innerPool.getResource()) {
+////// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+//// }
+// samePairs.add(matchKey);
+//// try (Jedis jedis = innerPool.getResource()) {
+////// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+//// }
+// }
+//// jedis.select(0);
+////// jedis.srem("pairs",matchKey);
+//// jedis.del(matchKey);
+//
+// return;
+// default:
+// break;
+// }
+//
+//
+//
+// if(oldTree.toStaticHashString().equals(newTree.toStaticHashString())){
+// String editDistance = "0";
// String result = i + "," + j + "," + editDistance;
-//
-//
// if (editDistance.equals("0")) {
//
// if (treeType.equals("action")) {
-//
// HierarchicalActionSet oldProject = oldPair.getValue1();
// HierarchicalActionSet newProject = newPair.getValue1();
//
// oldTree = EDiffHelper.getTargets(oldProject);
// newTree = EDiffHelper.getTargets(newProject);
-//
-// if(oldTree.toString().equals(newTree.toString())) {
-// m = Matchers.getInstance().getMatcher(oldTree, newTree);
-// m.match();
-//
-//
-// ag = new ActionGenerator(oldTree, newTree, m.getMappings());
-// ag.generate();
-// actions = ag.getActions();
-//
-// editDistance = String.valueOf(actions.size());
-//
-// if (editDistance.equals("0")) {
-// try (Jedis jedis = innerPool.getResource()) {
-// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-// }
-// }
+// if (oldTree.toStaticHashString().equals(newTree.toStaticHashString())) {
+// samePairs.add(matchKey);
+//// try (Jedis jedis = innerPool.getResource()) {
+////// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+////
+//// }
// }
-//
-//
// } else {
-// try (Jedis jedis = innerPool.getResource()) {
-// jedis.del(matchKey);
-// jedis.select(2);
-// jedis.set(matchKey, result);
-// }
-//// jedis.select(2);
-//// jedis.set(matchKey, result);
-//// samePairs.add(matchKey);
+// samePairs.add(matchKey);
+//// try (Jedis jedis = innerPool.getResource()) {
+////// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+////
+//// }
// }
-//
// }
-// }
-
- } catch (Exception e) {
- errorPairs.add(matchKey);
-// jedis.select(0);
-//// jedis.srem("pairs",matchKey);
//
-// jedis.hset(matchKey, "0", "1");
-
- log.debug("{} not comparable", pairName);
- }
- }
+//
+// }
+//// if(oldTree.toString().equals(newTree.toString())) {
+//// Matcher m = Matchers.getInstance().getMatcher(oldTree, newTree);
+//// m.match();
+////
+////
+//// ActionGenerator ag = new ActionGenerator(oldTree, newTree, m.getMappings());
+//// ag.generate();
+//// List actions = ag.getActions();
+////
+////
+//// String editDistance;
+////
+//// editDistance = String.valueOf(actions.size());
+//// String result = i + "," + j + "," + editDistance;
+////
+////
+//// if (editDistance.equals("0")) {
+////
+//// if (treeType.equals("action")) {
+////
+//// HierarchicalActionSet oldProject = oldPair.getValue1();
+//// HierarchicalActionSet newProject = newPair.getValue1();
+////
+//// oldTree = EDiffHelper.getTargets(oldProject);
+//// newTree = EDiffHelper.getTargets(newProject);
+////
+//// if(oldTree.toString().equals(newTree.toString())) {
+//// m = Matchers.getInstance().getMatcher(oldTree, newTree);
+//// m.match();
+////
+////
+//// ag = new ActionGenerator(oldTree, newTree, m.getMappings());
+//// ag.generate();
+//// actions = ag.getActions();
+////
+//// editDistance = String.valueOf(actions.size());
+////
+//// if (editDistance.equals("0")) {
+//// try (Jedis jedis = innerPool.getResource()) {
+//// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+//// }
+//// }
+//// }
+////
+////
+//// } else {
+//// try (Jedis jedis = innerPool.getResource()) {
+//// jedis.del(matchKey);
+//// jedis.select(2);
+//// jedis.set(matchKey, result);
+//// }
+////// jedis.select(2);
+////// jedis.set(matchKey, result);
+////// samePairs.add(matchKey);
+//// }
+////
+//// }
+//// }
+//
+// } catch (Exception e) {
+// errorPairs.add(matchKey);
+//// jedis.select(0);
+////// jedis.srem("pairs",matchKey);
+////
+//// jedis.hset(matchKey, "0", "1");
+//
+// log.debug("{} not comparable", pairName);
+// }
+// }
}
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/DefaultKryoContext.java b/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/DefaultKryoContext.java
deleted file mode 100644
index 93d4783..0000000
--- a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/DefaultKryoContext.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package edu.lu.uni.serval.fixminer.akka.ediff;
-
-import java.io.ByteArrayOutputStream;
-
-import com.esotericsoftware.kryo.Kryo;
-import com.esotericsoftware.kryo.io.*;
-import com.esotericsoftware.kryo.pool.KryoFactory;
-import com.esotericsoftware.kryo.pool.KryoPool;
-import org.objenesis.strategy.SerializingInstantiatorStrategy;
-
-
-public class DefaultKryoContext implements KryoContext{
-
- private static final int DEFAULT_BUFFER = 1024 * 100;
-
- private KryoPool pool;
-
- public static KryoContext newKryoContextFactory()
- {
- return new DefaultKryoContext();
- }
-
- private DefaultKryoContext()
- {
- KryoFactory factory = new KryoFactoryImpl();
-
- pool = new KryoPool.Builder(factory).softReferences().build();
- }
-
- private static class KryoFactoryImpl implements KryoFactory
- {
- @Override
- public Kryo create() {
- Kryo kryo = new Kryo();
- kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new SerializingInstantiatorStrategy()));
- return kryo;
- }
- }
-
-
- @Override
- public byte[] serialze(Object obj)
- {
- return serialze(obj, DEFAULT_BUFFER);
- }
-
- @Override
- public byte[] serialze(Object obj, int bufferSize)
- {
- ByteArrayOutputStream base = new ByteArrayOutputStream();
- UnsafeMemoryOutput output = new UnsafeMemoryOutput(base, bufferSize);
-
- Kryo kryo = pool.borrow();
-
- kryo.writeObject(output, obj);
-
- output.flush();
- byte[] serialized = base.toByteArray();
- output.close();
-
-// byte[] serialized = output.toBytes();
-
- pool.release(kryo);
-
- return serialized;
- }
-
- @Override
- public Object deserialze(Class clazz, byte[] serialized)
- {
- Object obj;
-
- Kryo kryo = pool.borrow();
-
- UnsafeMemoryInput input = new UnsafeMemoryInput(serialized);
- obj = kryo.readObject(input, clazz);
-
- pool.release(kryo);
-
- return obj;
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/HunkParserTest.java b/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/HunkParserTest.java
index 3e9f19b..a41f578 100644
--- a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/HunkParserTest.java
+++ b/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/HunkParserTest.java
@@ -211,9 +211,9 @@ public class HunkParserTest {
// tc.validate();
// parent.getLength();
- HierarchicalActionSet actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(dump);
+// HierarchicalActionSet actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(dump);
// HierarchicalActionSet actionSet = (HierarchicalActionSet) EDiffHelper.commonsDeserialize(dump);
- actionSet.toString();
+// actionSet.toString();
// CODE HERE
@@ -248,8 +248,8 @@ public class HunkParserTest {
String j = "21";
HashMap filenames = AkkaTreeParser.filenames(outerPool);
- oldPair = EDiffHelper.getActions(keyName, i, outerPool, filenames);
- newPair = EDiffHelper.getActions(keyName, j, outerPool, filenames);
+// oldPair = EDiffHelper.getActions(keyName, i, outerPool, filenames);
+// newPair = EDiffHelper.getActions(keyName, j, outerPool, filenames);
ITree oldActionTree = oldPair.getValue0();
ITree newActionTree = newPair.getValue0();
HierarchicalActionSet oldProject = oldPair.getValue1();
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/TestIntroClass.java b/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/TestIntroClass.java
index 3a8dd1d..7ce7832 100644
--- a/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/TestIntroClass.java
+++ b/src/main/java/edu/lu/uni/serval/fixminer/akka/ediff/TestIntroClass.java
@@ -19,8 +19,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
-import static reactor.core.reactivestreams.PublisherFactory.forEach;
-
public class TestIntroClass {
diff --git a/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java b/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
index fdf928c..8ddabc9 100755
--- a/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
+++ b/src/main/java/edu/lu/uni/serval/fixminer/jobs/EnhancedASTDiff.java
@@ -62,7 +62,7 @@ public class EnhancedASTDiff {
.filter(x -> !x.getName().startsWith("."))
.filter(x -> !x.getName().startsWith("cocci"))
.filter(x -> !x.getName().endsWith(".index"))
- .filter(x -> x.getName().endsWith("codeflaws"))
+// .filter(x -> x.getName().endsWith("codeflaws"))
.collect(Collectors.toList());
diff --git a/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java b/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java
index 2687b3f..40e8dc4 100755
--- a/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java
+++ b/src/main/java/edu/lu/uni/serval/utils/EDiffHelper.java
@@ -5,7 +5,6 @@ import com.github.gumtreediff.gen.srcml.NodeMap_new;
import com.github.gumtreediff.tree.ITree;
import com.github.gumtreediff.tree.TreeContext;
import com.github.gumtreediff.tree.TreeUtils;
-import edu.lu.uni.serval.fixminer.akka.ediff.DefaultKryoContext;
import edu.lu.uni.serval.fixminer.akka.ediff.HierarchicalActionSet;
import edu.lu.uni.serval.fixminer.akka.ediff.KryoContext;
import org.apache.commons.lang3.SerializationUtils;
@@ -74,16 +73,6 @@ public class EDiffHelper {
}
- public static byte[] kryoSerialize(Serializable o ){
- KryoContext kryoContext = DefaultKryoContext.newKryoContextFactory();
- return kryoContext.serialze(o);
- }
-
- public static Object kryoDeseerialize(byte[] data ){
- KryoContext kryoContext = DefaultKryoContext.newKryoContextFactory();
- return kryoContext.deserialze(HierarchicalActionSet.class,data);
- }
-
public static ITree getTokenTree(HierarchicalActionSet actionSet, ITree parent, ITree children,TreeContext tc){
int newType = 0;
@@ -272,31 +261,31 @@ public class EDiffHelper {
}
- public static ITree getShapes(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
-
- ITree tree = null;
-
- try (Jedis outer = outerPool.getResource()) {
- try {
- while (!outer.ping().equals("PONG")) {
- log.info("wait");
- }
- String dist2load = filenames.get(prefix + "-" + fn);
-
- String key = prefix.replace("-", "/") + "/" + dist2load;
-
- byte[] s = outer.hget("dump".getBytes(), key.getBytes());
- HierarchicalActionSet actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
-
- tree = getShapeTree(actionSet);
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return tree;
-
- }
+// public static ITree getShapes(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
+//
+// ITree tree = null;
+//
+// try (Jedis outer = outerPool.getResource()) {
+// try {
+// while (!outer.ping().equals("PONG")) {
+// log.info("wait");
+// }
+// String dist2load = filenames.get(prefix + "-" + fn);
+//
+// String key = prefix.replace("-", "/") + "/" + dist2load;
+//
+// byte[] s = outer.hget("dump".getBytes(), key.getBytes());
+// HierarchicalActionSet actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
+//
+// tree = getShapeTree(actionSet);
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+// return tree;
+//
+// }
public static ITree getShapeTree(HierarchicalActionSet actionSet) {
ITree tree = null;
@@ -349,38 +338,38 @@ public class EDiffHelper {
return null;
}
- public static Pair getActions(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
-
-
- ITree tree = null;
- HierarchicalActionSet actionSet = null;
-
- try (Jedis outer = outerPool.getResource()) {
- try {
- while (!outer.ping().equals("PONG")) {
- log.info("wait");
- }
-
-
- String dist2load = filenames.get(prefix + "-" + fn);
-
- String[] split = prefix.split("-");
- String key = split[0] + "/"+split[1]+"/" + dist2load;
-
- byte[] s = outer.hget("dump".getBytes(), key.getBytes());
- actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
-
-
- tree = getActionTrees(actionSet);
- }catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- Pair pair = new Pair<>(tree,actionSet);
- return pair;
-
- }
+// public static Pair getActions(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
+//
+//
+// ITree tree = null;
+// HierarchicalActionSet actionSet = null;
+//
+// try (Jedis outer = outerPool.getResource()) {
+// try {
+// while (!outer.ping().equals("PONG")) {
+// log.info("wait");
+// }
+//
+//
+// String dist2load = filenames.get(prefix + "-" + fn);
+//
+// String[] split = prefix.split("-");
+// String key = split[0] + "/"+split[1]+"/" + dist2load;
+//
+// byte[] s = outer.hget("dump".getBytes(), key.getBytes());
+// actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
+//
+//
+// tree = getActionTrees(actionSet);
+// }catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+//
+// Pair pair = new Pair<>(tree,actionSet);
+// return pair;
+//
+// }
public static ITree getActionTrees(HierarchicalActionSet actionSet) {
ITree tree = null;
@@ -406,41 +395,41 @@ public class EDiffHelper {
}
}
- public static ITree getTokens(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
-
-
- ITree tree = null;
-
- HierarchicalActionSet actionSet = null;
- try (Jedis outer = outerPool.getResource()) {
- try {
- while (!outer.ping().equals("PONG")) {
- log.info("wait");
- }
- String dist2load = filenames.get(prefix + "-" + fn);
-
- String[] split = prefix.split("-");
- String key = split[0] + "/"+split[1]+"/" + dist2load;
-
- byte[] s = outer.hget("dump".getBytes(), key.getBytes());
- actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
-
- ITree parent = null;
- ITree children = null;
- TreeContext tc = new TreeContext();
- tree = EDiffHelper.getTokenTree(actionSet, parent, children, tc);
- tree.setParent(null);
- tc.validate();
-// getLeaves(tree);
-
-
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- return tree;
- }
+// public static ITree getTokens(String prefix, String fn, JedisPool outerPool, HashMap filenames) {
+//
+//
+// ITree tree = null;
+//
+// HierarchicalActionSet actionSet = null;
+// try (Jedis outer = outerPool.getResource()) {
+// try {
+// while (!outer.ping().equals("PONG")) {
+// log.info("wait");
+// }
+// String dist2load = filenames.get(prefix + "-" + fn);
+//
+// String[] split = prefix.split("-");
+// String key = split[0] + "/"+split[1]+"/" + dist2load;
+//
+// byte[] s = outer.hget("dump".getBytes(), key.getBytes());
+// actionSet = (HierarchicalActionSet) EDiffHelper.kryoDeseerialize(s);
+//
+// ITree parent = null;
+// ITree children = null;
+// TreeContext tc = new TreeContext();
+// tree = EDiffHelper.getTokenTree(actionSet, parent, children, tc);
+// tree.setParent(null);
+// tc.validate();
+//// getLeaves(tree);
+//
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// }
+//
+// return tree;
+// }
diff --git a/src/main/resource/app.properties b/src/main/resource/app.properties
index 5a1e010..3970991 100755
--- a/src/main/resource/app.properties
+++ b/src/main/resource/app.properties
@@ -8,11 +8,11 @@ hostname = localhost
hunkLimit = 10
#inputPath = /Users/anilkoyuncu/projects/gumInputLinux
-inputPath = /Users/anilkoyuncu/projects/fixminer/fixminer-core/python/data/gumInputLinux
+inputPath = /Users/anil.koyuncu/projects/fixminer/fixminer-data/gumInputLinux
#redisPath = /Users/anil.koyuncu/projects/fixminer/fixminer-core/python/data/redis
-redisPath = /Users/anilkoyuncu/projects/fixminer/fixminer-core/python/data/redis
-#srcMLPath= /Users/anil.koyuncu/Downloads/srcML/src2srcml
-srcMLPath= /usr/local/bin/srcml
+redisPath = /Users/anil.koyuncu/projects/fixminer/fixminer-core/python/data/redis
+srcMLPath= /Users/anil.koyuncu/Downloads/srcML.0.9.5/bin/srcml
+#srcMLPath= /usr/local/bin/srcml
actionType = ALL
eDiffTimeout = 900