diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/cluster/AkkaTreeLoader.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/cluster/AkkaTreeLoader.java index 3158884..5315d0d 100644 --- a/src/main/java/edu/lu/uni/serval/FixPatternParser/cluster/AkkaTreeLoader.java +++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/cluster/AkkaTreeLoader.java @@ -253,7 +253,7 @@ public class AkkaTreeLoader { ITree children =null; TreeContext tc = new TreeContext(); tree = getASTTree(actionSet, parent, children,tc); - tree.setParent(null); +// tree.setParent(null); tc.validate(); } catch (IOException e) { diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/MultiThreadTreeLoaderCluster3.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/MultiThreadTreeLoaderCluster3.java index 5f9a4a2..c0a221f 100644 --- a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/MultiThreadTreeLoaderCluster3.java +++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/MultiThreadTreeLoaderCluster3.java @@ -396,7 +396,8 @@ public class MultiThreadTreeLoaderCluster3 { (sType.equals("43") && oldDescendant.getHeight() == 0 && oldDescendant.getChildren().size() == 0) || (sType.equals("53") )|| //&& oldDescendant.getHeight() == 1 && oldDescendant.getChildren().size() == 1) || (sType.equals("7") && oldDescendant.getHeight() == 1 && oldDescendant.getChildren().size() == 1) || - (sType.equals("41") && oldDescendant.getHeight() == 1 && oldDescendant.getChildren().size() == 1) + (sType.equals("41") && oldDescendant.getHeight() == 1 && oldDescendant.getChildren().size() == 1) || + (sType.equals("40") && oldDescendant.getHeight() == 1 && oldDescendant.getChildren().size() == 1) ){ // int depth = oldDescendant.getChildren().size(); @@ -476,6 +477,12 @@ public class MultiThreadTreeLoaderCluster3 { m.add(hours.trim()); m.add(to.trim()); addToken = true; + }else if(sType.equals("40") && oldDescendant.getChildren().size()==1 && oldDescendant.getHeight()==1 ){//qualified name + + m.add(hours.trim()); + m.add(to.trim()); + addToken = true; + }else if(sType.equals("-1") && oldDescendant.getChildren().size()==0 && oldDescendant.getHeight()==0 ){//operator m.add(hours.trim()); m.add(to.trim()); @@ -484,6 +491,10 @@ public class MultiThreadTreeLoaderCluster3 { m.add(hours.trim()); m.add(to.trim()); addToken = true; + }else if(sType.equals("39") && oldDescendant.getChildren().size()==0 && oldDescendant.getHeight()==0 ){//primitive type + m.add(hours.trim()); + m.add(to.trim()); + addToken = true; }else{ m.add(hours.trim()); m.add(to.trim()); @@ -497,9 +508,11 @@ public class MultiThreadTreeLoaderCluster3 { if (matcher.matches()) { String hours = matcher.group(1); - if (hours.startsWith("MethodName:")){ + if (hours.startsWith("MethodName:")) { String methodName = hours.split(":")[1]; oldTokens.add(methodName); +// }else if(sType.equals("34")){ +// oldTokens.add("NumberLiteral"); }else { oldTokens.add(hours.trim()); } @@ -547,21 +560,21 @@ public class MultiThreadTreeLoaderCluster3 { String methodName = s.split(":")[1]; ITree parent = oldDescendant.getParent(); - if(parent!= null && parent.getType() == 32 && !alreadyAddParentMethodName){ //parent is method invocation statement - String parentLabel = parent.getLabel(); - String[] pns = parentLabel.split("\\." + methodName); - if(pns.length > 1) { - String parentName = pns[0]; - String[] parentNameSplit = parentName.split("@@"); - if (parentNameSplit.length > 1) { - String parentMethodName = parentNameSplit[1]; - String s1 = parentMethodName.split("@TO@")[0]; - oldTokens.add(s1.trim()); - alreadyAddParentMethodName = true; - } - } - - } +// if(parent!= null && parent.getType() == 32 && !alreadyAddParentMethodName){ //parent is method invocation statement +// String parentLabel = parent.getLabel(); +// String[] pns = parentLabel.split("\\." + methodName); +// if(pns.length > 1) { +// String parentName = pns[0]; +// String[] parentNameSplit = parentName.split("@@"); +// if (parentNameSplit.length > 1) { +// String parentMethodName = parentNameSplit[1]; +// String s1 = parentMethodName.split("@TO@")[0]; +// oldTokens.add(s1.trim()); +// alreadyAddParentMethodName = true; +// } +// } +// +// } oldTokens.add(methodName); }else if( sType.equals("59") || sType.equals("43")|| sType.equals("53") || sType.equals("7") || sType.equals("27") || sType.equals("83") || sType.equals("44") ||sType.equals("78") || sType.equals("41") || addToken){ // if(sType.equals("27") || sType.equals("83") || sType.equals("44")){ diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/TestHunkParserSingleFile.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/TestHunkParserSingleFile.java index 0266e2a..624eb85 100644 --- a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/TestHunkParserSingleFile.java +++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/TestHunkParserSingleFile.java @@ -32,7 +32,7 @@ public class TestHunkParserSingleFile { outputPath = args[0]; }else{ // inputPath = "/Users/anilkoyuncu/bugStudy/dataset/GumTreeInputBug4"; - inputPath = "/Volumes/data/bugStudy_backup/dataset/GumTreeInputBug4"; + inputPath = "/Users/anilkoyuncu/bugStudy/dataset/allDataset"; // outputPath = "/Users/anilkoyuncu/bugStudy/code/python/GumTreeOutput2/"; outputPath = "/Users/anilkoyuncu/bugStudy/dataset/GumTreeOutputSingle"; } @@ -59,9 +59,9 @@ public class TestHunkParserSingleFile { // List pjList = Arrays.asList("DATAJPA","ZXing","PDE","SWS","SWT", "SWF", "COLLECTIONS", "JDT"); List files = new ArrayList(); // files.add("5d9d60_76f5be_components#camel-jaxb#src#test#java#org#apache#camel#jaxb#FallbackTypeConverterShouldNotThrowExceptionTest.java"); - files.add("49821e_3cc787_components#camel-infinispan#src#main#java#org#apache#camel#component#infinispan#InfinispanConstants.java"); + files.add("d6c5e5_9f96d9_hbase-server#src#main#java#org#apache#hadoop#hbase#master#RegionStates.java"); for(String f : files){ - String pjName = "CAMEL"; + String pjName = "HBASE"; // for (File target : folders) { // String pjName = target.getName(); // if (!pjList.contains(pjName)){ diff --git a/src/main/java/edu/lu/uni/serval/Launcher.java b/src/main/java/edu/lu/uni/serval/Launcher.java index 58bec66..11069d4 100644 --- a/src/main/java/edu/lu/uni/serval/Launcher.java +++ b/src/main/java/edu/lu/uni/serval/Launcher.java @@ -66,7 +66,7 @@ public class Launcher { datasetPath = "/Users/anilkoyuncu/bugStudy/dataset"; pjName = "allDataset"; dbNo = "0"; - actionType ="DEL"; + actionType ="UPD"; } gumInput = datasetPath +"/"+pjName+"/"; gumOutput = datasetPath + "/GumTreeOutput" + pjName; @@ -301,19 +301,19 @@ public class Launcher { stopServer = String.format(stopServera,Integer.valueOf(port)); cs5.runShell(stopServer,serverWait); - String dbc = String.format(dba, dbDir,"clusterl2-"+pjName+"DEL.rdb",Integer.valueOf(port)); - cs5.runShell(dbc,serverWait); - String formatRunPyc = String.format(runpya,pythonPath +"/abstractPatchClusterLevel3.py", gumInput, datasetPath + "/cluster-3l"+pjName+ "DEL", port, datasetPath + "/cluster-2l"+pjName+ "DEL"); - cs5.runShell(formatRunPyc); - stopServer = String.format(stopServera,Integer.valueOf(port)); - cs5.runShell(stopServer,serverWait); - - String dbd = String.format(dba, dbDir,"clusterl2-"+pjName+"MOV.rdb",Integer.valueOf(port)); - cs5.runShell(dbd,serverWait); - String formatRunPyd = String.format(runpya,pythonPath +"/abstractPatchClusterLevel3.py", gumInput, datasetPath + "/cluster-3l"+pjName+ "MOV", port, datasetPath + "/cluster-2l"+pjName+ "MOV"); - cs5.runShell(formatRunPyd); - stopServer = String.format(stopServera,Integer.valueOf(port)); - cs5.runShell(stopServer,serverWait); +// String dbc = String.format(dba, dbDir,"clusterl2-"+pjName+"DEL.rdb",Integer.valueOf(port)); +// cs5.runShell(dbc,serverWait); +// String formatRunPyc = String.format(runpya,pythonPath +"/abstractPatchClusterLevel3.py", gumInput, datasetPath + "/cluster-3l"+pjName+ "DEL", port, datasetPath + "/cluster-2l"+pjName+ "DEL"); +// cs5.runShell(formatRunPyc); +// stopServer = String.format(stopServera,Integer.valueOf(port)); +// cs5.runShell(stopServer,serverWait); +//// +// String dbd = String.format(dba, dbDir,"clusterl2-"+pjName+"MOV.rdb",Integer.valueOf(port)); +// cs5.runShell(dbd,serverWait); +// String formatRunPyd = String.format(runpya,pythonPath +"/abstractPatchClusterLevel3.py", gumInput, datasetPath + "/cluster-3l"+pjName+ "MOV", port, datasetPath + "/cluster-2l"+pjName+ "MOV"); +// cs5.runShell(formatRunPyd); +// stopServer = String.format(stopServera,Integer.valueOf(port)); +// cs5.runShell(stopServer,serverWait); } } catch (Exception e) { e.printStackTrace();