change
This commit is contained in:
Generated
+8
@@ -5,9 +5,17 @@
|
|||||||
<file url="file://$PROJECT_DIR$/gumtree" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/gumtree/client" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree/client" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/gumtree/client.diff" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree/client.diff" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/client.diff/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/client.diff/src/main/resources" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/client/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/gumtree/core" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree/core" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/core/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/gumtree/gen.jdt" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree/gen.jdt" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/gen.jdt/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/gumtree/gen.srcml" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/gumtree/gen.srcml" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/gumtree/gen.srcml/src/main/java" charset="UTF-8" />
|
||||||
<file url="file://$PROJECT_DIR$/richedit" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/richedit" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/richedit/src/main/java" charset="UTF-8" />
|
||||||
|
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
Generated
+122
-1110
File diff suppressed because it is too large
Load Diff
@@ -71,6 +71,10 @@ In order to launch FixMiner, execute [fixminer.sh](python/fixminer.sh)
|
|||||||
|
|
||||||
* Update [config file](src/main/resources/config.yml) with corresponding user paths.
|
* Update [config file](src/main/resources/config.yml) with corresponding user paths.
|
||||||
|
|
||||||
|
* Install the project with maven from root. (usage [pom.xml](pom.xml))
|
||||||
|
```powershell
|
||||||
|
mvn clean install
|
||||||
|
```
|
||||||
* Active the conda environment from shell
|
* Active the conda environment from shell
|
||||||
```powershell
|
```powershell
|
||||||
source activate fixminerEnv
|
source activate fixminerEnv
|
||||||
@@ -81,6 +85,9 @@ In order to launch FixMiner, execute [fixminer.sh](python/fixminer.sh)
|
|||||||
bash fixminer.sh [JOB] [CONFIG_FILE]
|
bash fixminer.sh [JOB] [CONFIG_FILE]
|
||||||
e.g. bash fixminer.sh dataset4c /Users/projects/release/fixminer_source/src/main/resources/config.yml
|
e.g. bash fixminer.sh dataset4c /Users/projects/release/fixminer_source/src/main/resources/config.yml
|
||||||
|
|
||||||
|
#### Redis Commands
|
||||||
|
hlen diffEntry
|
||||||
|
To see number of patches / diff entries computed rich edit
|
||||||
|
|
||||||
#### Job Types
|
#### Job Types
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
|
||||||
|
source activate fixminerEnv
|
||||||
|
|
||||||
|
PYTHONPATH=$(pwd) python -u python/main.py -root $(pwd)/python -job $2 -prop $1
|
||||||
Binary file not shown.
@@ -17,6 +17,8 @@ def createDS():
|
|||||||
pjList = PROJECT_LIST.split(',')
|
pjList = PROJECT_LIST.split(',')
|
||||||
if not os.path.exists(DATASET_PATH):
|
if not os.path.exists(DATASET_PATH):
|
||||||
os.mkdir(DATASET_PATH)
|
os.mkdir(DATASET_PATH)
|
||||||
|
if not os.path.exists(COMMIT_DFS):
|
||||||
|
os.mkdir(COMMIT_DFS)
|
||||||
|
|
||||||
subjects = pd.read_csv(join(ROOT,'data', 'dataset.csv'))
|
subjects = pd.read_csv(join(ROOT,'data', 'dataset.csv'))
|
||||||
|
|
||||||
|
|||||||
@@ -135,7 +135,8 @@ public class Launcher {
|
|||||||
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage());
|
// log.error(e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
// e.printStackTrace();
|
// e.printStackTrace();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,37 +29,36 @@ public class EnhancedASTDiff {
|
|||||||
public static void main(String inputPath, String portInner, String dbDir, String chunkName,String srcMLPath,String parameter,String hunkLimit,String[] projectList,String patchSize,String projectType) throws Exception {
|
public static void main(String inputPath, String portInner, String dbDir, String chunkName,String srcMLPath,String parameter,String hunkLimit,String[] projectList,String patchSize,String projectType) throws Exception {
|
||||||
|
|
||||||
|
|
||||||
String parameters = String.format("\nInput path %s",inputPath);
|
String parameters = String.format("\nInput path %s", inputPath);
|
||||||
log.info(parameters);
|
log.info(parameters);
|
||||||
|
|
||||||
CallShell cs = new CallShell();
|
CallShell cs = new CallShell();
|
||||||
String cmd = "bash "+dbDir + "/" + "startServer.sh" +" %s %s %s";
|
String cmd = "bash " + dbDir + "/" + "startServer.sh" + " %s %s %s";
|
||||||
|
|
||||||
cmd = String.format(cmd, dbDir,chunkName,Integer.valueOf(portInner));
|
cmd = String.format(cmd, dbDir, chunkName, Integer.valueOf(portInner));
|
||||||
|
|
||||||
cs.runShell(cmd, portInner);
|
cs.runShell(cmd, portInner);
|
||||||
|
|
||||||
JedisPool innerPool = new JedisPool(PoolBuilder.getPoolConfig(), "127.0.0.1",Integer.valueOf(portInner),20000000);
|
JedisPool innerPool = new JedisPool(PoolBuilder.getPoolConfig(), "127.0.0.1", Integer.valueOf(portInner), 20000000);
|
||||||
|
|
||||||
boolean isJava = false;
|
boolean isJava = false;
|
||||||
if (projectType.equals("java")){
|
if (projectType.equals("java")) {
|
||||||
isJava =true;
|
isJava = true;
|
||||||
}
|
}
|
||||||
File folder = new File(inputPath);
|
File folder = new File(inputPath);
|
||||||
File[] listOfFiles = folder.listFiles();
|
File[] listOfFiles = folder.listFiles();
|
||||||
if(listOfFiles == null){
|
if (listOfFiles == null) {
|
||||||
throw new Exception("No projects found, please verify the projects in the input path");
|
throw new Exception("No projects found, please verify the projects in the input path");
|
||||||
}
|
}
|
||||||
Stream<File> stream = Arrays.stream(listOfFiles);
|
Stream<File> stream = Arrays.stream(listOfFiles);
|
||||||
List<File> folders;
|
List<File> folders;
|
||||||
if (projectList.length == 1 && projectList[0].equals("")){
|
if (projectList.length == 1 && projectList[0].equals("")) {
|
||||||
folders = stream
|
folders = stream
|
||||||
.filter(x -> !x.getName().startsWith("."))
|
.filter(x -> !x.getName().startsWith("."))
|
||||||
.filter(x -> !x.getName().startsWith("cocci"))
|
.filter(x -> !x.getName().startsWith("cocci"))
|
||||||
.filter(x -> !x.getName().endsWith(".index"))
|
.filter(x -> !x.getName().endsWith(".index"))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
List<Predicate<File>> allPredicates = new ArrayList<Predicate<File>>();
|
List<Predicate<File>> allPredicates = new ArrayList<Predicate<File>>();
|
||||||
for (String s : projectList) {
|
for (String s : projectList) {
|
||||||
Predicate<File> predicate = x -> x.getName().endsWith(s);
|
Predicate<File> predicate = x -> x.getName().endsWith(s);
|
||||||
@@ -69,20 +68,16 @@ public class EnhancedASTDiff {
|
|||||||
.filter(x -> !x.getName().startsWith("."))
|
.filter(x -> !x.getName().startsWith("."))
|
||||||
.filter(x -> !x.getName().startsWith("cocci"))
|
.filter(x -> !x.getName().startsWith("cocci"))
|
||||||
.filter(x -> !x.getName().endsWith(".index"))
|
.filter(x -> !x.getName().endsWith(".index"))
|
||||||
.filter(allPredicates.stream().reduce(x->false, Predicate::or))
|
.filter(allPredicates.stream().reduce(x -> false, Predicate::or))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String project = folder.getName();
|
String project = folder.getName();
|
||||||
List<MessageFile> allMessageFiles = new ArrayList<>();
|
List<MessageFile> allMessageFiles = new ArrayList<>();
|
||||||
for (File target : folders) {
|
for (File target : folders) {
|
||||||
|
|
||||||
List<MessageFile> msgFiles = getMessageFiles(target.toString() + "/",project,patchSize,isJava); //"/Users/anilkoyuncu/bugStudy/code/python/GumTreeInput/Apache/CAMEL/"
|
List<MessageFile> msgFiles = getMessageFiles(target.toString() + "/", project, patchSize, isJava); //"/Users/anilkoyuncu/bugStudy/code/python/GumTreeInput/Apache/CAMEL/"
|
||||||
|
|
||||||
// msgFiles = msgFiles.subList(0,3000);
|
// msgFiles = msgFiles.subList(0,3000);
|
||||||
if (msgFiles == null)
|
if (msgFiles == null)
|
||||||
@@ -104,16 +99,25 @@ public class EnhancedASTDiff {
|
|||||||
log.info("{} files to process ...", allMessageFiles.size());
|
log.info("{} files to process ...", allMessageFiles.size());
|
||||||
}
|
}
|
||||||
boolean finalIsJava = isJava;
|
boolean finalIsJava = isJava;
|
||||||
ProgressBar.wrap(allMessageFiles.stream().
|
// ProgressBar.wrap(allMessageFiles.stream().
|
||||||
parallel(),"Task").
|
// parallel(),"Task").
|
||||||
|
// forEach(m ->
|
||||||
|
// {
|
||||||
|
// EDiffHunkParser parser = new EDiffHunkParser();
|
||||||
|
// parser.parseFixPatterns(m.getPrevFile(),m.getRevFile(), m.getDiffEntryFile(),project,innerPool,srcMLPath,hunkLimit, finalIsJava);
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
allMessageFiles.stream().
|
||||||
|
parallel().
|
||||||
forEach(m ->
|
forEach(m ->
|
||||||
{
|
{
|
||||||
EDiffHunkParser parser = new EDiffHunkParser();
|
EDiffHunkParser parser = new EDiffHunkParser();
|
||||||
parser.parseFixPatterns(m.getPrevFile(),m.getRevFile(), m.getDiffEntryFile(),project,innerPool,srcMLPath,hunkLimit, finalIsJava);
|
parser.parseFixPatterns(m.getPrevFile(), m.getRevFile(), m.getDiffEntryFile(), project, innerPool, srcMLPath, hunkLimit, finalIsJava);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@ coccinelle:
|
|||||||
|
|
||||||
dataset:
|
dataset:
|
||||||
# home: /Users/anilkoyuncu/projects/fixminer/fixminer-core/python/data/gumInputLinux
|
# home: /Users/anilkoyuncu/projects/fixminer/fixminer-core/python/data/gumInputLinux
|
||||||
inputPath : /Users/anilkoyuncu/projects/test/fixminer-data/patches
|
inputPath : /Users/anil.koyuncu/projects/release/fixminer-data/patches
|
||||||
repo: /Users/anilkoyuncu/projects/test/fixminer-data/datasets
|
repo: /Users/anil.koyuncu/projects/release/fixminer-data/datasets
|
||||||
|
|
||||||
fixminer:
|
fixminer:
|
||||||
projectType : java
|
projectType : java
|
||||||
datapath: /Users/anilkoyuncu/projects/test/fixminer-data/
|
datapath: /Users/anil.koyuncu/projects/release/fixminer-data/
|
||||||
|
|
||||||
|
|
||||||
pjName : patches
|
pjName : patches
|
||||||
@@ -22,7 +22,7 @@ fixminer:
|
|||||||
hunkLimit : 2
|
hunkLimit : 2
|
||||||
patchSize : 50
|
patchSize : 50
|
||||||
|
|
||||||
projectList : spring-shell,fuse,metadata,commons-codec,commons-collections,commons-compress,commons-configuration,commons-crypto,commons-csv
|
projectList : fuse
|
||||||
inputPath : /Users/anilkoyuncu/projects/test/fixminer-data/patches
|
inputPath : /Users/anil.koyuncu/projects/release/fixminer-data/patches
|
||||||
redisPath : /Users/anilkoyuncu/projects/release/test/fixminer_source/python/data/redis
|
redisPath : /Users/anil.koyuncu/projects/release/fixminer_source/python/data/redis
|
||||||
srcMLPath : /usr/local/bin/srcml
|
srcMLPath : /usr/local/bin/srcml
|
||||||
|
|||||||
Reference in New Issue
Block a user