Skip to content

Commit

Permalink
[Repairibility]: fixed false positives of NPEfix on repogit4test data
Browse files Browse the repository at this point in the history
  • Loading branch information
monperrus committed Jul 19, 2019
2 parents b765ac7 + 6b11141 commit 6a3878e
Show file tree
Hide file tree
Showing 21 changed files with 116 additions and 191 deletions.
168 changes: 0 additions & 168 deletions all_instances_found.json

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@
import fr.inria.coming.changeminer.entity.FinalResult;
import fr.inria.coming.changeminer.entity.IRevision;
import fr.inria.coming.core.engine.callback.IntermediateResultProcessorCallback;
import fr.inria.coming.core.engine.filespair.FileDiff;
import fr.inria.coming.core.entities.AnalysisResult;
import fr.inria.coming.core.entities.RevisionDataset;
import fr.inria.coming.core.entities.RevisionResult;
import fr.inria.coming.core.entities.interfaces.IFilter;
import fr.inria.coming.core.entities.interfaces.IOutput;
import fr.inria.coming.core.entities.interfaces.RevisionOrder;
import fr.inria.coming.main.ComingProperties;
import org.apache.log4j.Logger;

/**
*
* @author Matias Martinez
*
*/
public abstract class RevisionNavigationExperiment<R extends IRevision> {
Logger log = Logger.getLogger(FileDiff.class.getName());

protected RevisionOrder<R> navigationStrategy = null;
protected List<Analyzer> analyzers = new ArrayList<>();
Expand Down Expand Up @@ -103,7 +106,8 @@ public FinalResult analyze() {

R oneRevision = iterator.next();

System.out.println("\n***********\nAnalyzing " + i + "/" + size);
log.info("\n***********\nAnalyzing " + i + "/" + size);
// System.out.println("\n***********\nAnalyzing " + i + "/" + size);
if (!accept(oneRevision)) {
continue;
}
Expand Down
6 changes: 4 additions & 2 deletions src/main/java/fr/inria/coming/core/engine/files/FileDiff.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ public FileDiff(File diffFolder) {
@Override
public List<IRevisionPair> getChildren() {
if (this.diffFolder == null) {
System.out.println("Diff folder == null");
log.info("Diff folder == null");
// System.out.println("Diff folder == null");
return null;
}
List<IRevisionPair> pairs = new ArrayList<>();
Expand Down Expand Up @@ -69,7 +70,8 @@ public List<IRevisionPair> getChildren() {
;
}
} catch (Exception e) {
System.err.println("Error analyzing " + diffFolder);
log.error("Error analyzing " + diffFolder);
// System.err.println("Error analyzing " + diffFolder);
e.printStackTrace();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public FileDiff(File left, File right) {
public List<IRevisionPair> getChildren() {

if (left == null || right == null) {
System.out.println("files is null");
log.info("files is null");
// System.out.println("files is null");
return null;
}

Expand Down
9 changes: 8 additions & 1 deletion src/main/java/fr/inria/coming/core/entities/DiffResult.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package fr.inria.coming.core.entities;

import fr.inria.coming.changeminer.analyzer.commitAnalyzer.FineGrainDifftAnalyzer;
import org.apache.log4j.Logger;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
Expand All @@ -13,6 +16,8 @@
*/
public class DiffResult<T, R> extends AnalysisResult<T> {

static Logger log = Logger.getLogger(FineGrainDifftAnalyzer.class.getName());

/**
* Filename
*/
Expand Down Expand Up @@ -50,7 +55,9 @@ public String toString() {
try {
r += "\n" + idiff.toString();
} catch (Exception e) {
System.err.println("Error when printing diff result: " + e.getMessage());

// System.err.println("Error when printing diff result: " + e.getMessage());
log.error("Error when printing diff result: " + e.getMessage());
e.printStackTrace();
}

Expand Down
16 changes: 10 additions & 6 deletions src/main/java/fr/inria/coming/main/ComingMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
*/
public class ComingMain {

Logger log = Logger.getLogger(FineGrainDifftAnalyzer.class.getName());
static Logger logm = Logger.getLogger(FineGrainDifftAnalyzer.class.getName());

static Options options = new Options();

Expand Down Expand Up @@ -123,8 +123,10 @@ public static void main(String[] args) {
try {
cmain.run(args);
} catch (Exception e) {
System.err.println("Error initializing Coming with args" + Arrays.toString(args));
System.err.println(e);
logm.error("Error initializing Coming with args\" + Arrays.toString(args)");
// System.err.println("Error initializing Coming with args" + Arrays.toString(args));
logm.error(e);
// System.err.println(e);
e.printStackTrace();
}
}
Expand Down Expand Up @@ -157,7 +159,8 @@ public boolean createEngine(String[] args) throws ParseException {
try {
cmd = parser.parse(options, args);
} catch (UnrecognizedOptionException e) {
System.out.println("Error: " + e.getMessage());
logm.error("Error: " + e.getMessage());
// System.out.println("Error: " + e.getMessage());
help();
return false;
}
Expand Down Expand Up @@ -413,7 +416,7 @@ private List<ChangePatternSpecification> loadPattern() {
ChangePatternSpecification patternParsed = patternParser.parse(fl);
patternsFound.add(patternParsed);
} else {
log.error("The pattern file given as input does not exist " + fl.getAbsolutePath());
logm.error("The pattern file given as input does not exist " + fl.getAbsolutePath());
}
}
} else {
Expand Down Expand Up @@ -470,7 +473,8 @@ private static void help() {

HelpFormatter formater = new HelpFormatter();
formater.printHelp("Main", options);
System.out.println("More options and default values at 'configuration.properties' file");
logm.info("More options and default values at 'configuration.properties' file");
// System.out.println("More options and default values at 'configuration.properties' file");

System.exit(0);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import fr.inria.coming.changeminer.analyzer.commitAnalyzer.FineGrainDifftAnalyzer;
import fr.inria.coming.changeminer.analyzer.instancedetector.ChangePatternInstance;
import fr.inria.coming.changeminer.analyzer.instancedetector.PatternInstanceAnalyzer;
import fr.inria.coming.changeminer.analyzer.instancedetector.PatternInstancesFromDiff;
Expand All @@ -10,11 +11,13 @@
import fr.inria.coming.core.entities.RevisionResult;
import fr.inria.coming.core.entities.output.JSonPatternInstanceOutput;
import gumtree.spoon.diff.operations.Operation;
import org.apache.log4j.Logger;

import java.io.File;

public class JSONRepairabilityOutput extends JSonPatternInstanceOutput {

Logger log = Logger.getLogger(FineGrainDifftAnalyzer.class.getName());

public void getInstancesOfRevision(RevisionResult revisionResult, JsonArray instances) {

Expand All @@ -33,8 +36,10 @@ public void getInstancesOfRevision(RevisionResult revisionResult, JsonArray inst

instance.addProperty("revision", revisionIdentifier.toString());

System.out.println("\n--------\ncommit with instance:\n " + revisionIdentifier);
System.out.println(pi.getInstances());
log.info("\n--------\ncommit with instance:\n " + revisionIdentifier);
// System.out.println("\n--------\ncommit with instance:\n " + revisionIdentifier);
log.info(pi.getInstances());
// System.out.println(pi.getInstances());

JsonArray repair_tools = new JsonArray();
for (ChangePatternInstance instancePattern : pi.getInstances()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,16 @@
public class NPEfix extends AbstractRepairTool {

private static final String[] patternFileNames = {
"replacement.xml",
"replacement3.xml",
"replacement2.xml",
"replacement3.xml"
"replacement.xml",
"replacement4.xml",
"replacement5.xml",
"replacement6.xml",
"replacement7.xml",
"replacement8.xml",
"replacement9.xml",
"replacement11.xml"
};

/**
Expand Down
5 changes: 3 additions & 2 deletions src/main/resources/repairability/NPEfix/replacement.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<pattern name="replacement">
<entity id="1" type="*" />
<pattern name="replacement1">
<entity id="1" type="Assignment" />
<action entityId="1" type="INS"/>

</pattern>


7 changes: 7 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement11.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<pattern name="replacement11">
<entity id="1" type="Literal"/>
<action entityId="1" type="UPD"/>

</pattern>


5 changes: 3 additions & 2 deletions src/main/resources/repairability/NPEfix/replacement2.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<pattern name="replacement">
<entity id="1" type="*"/>
<pattern name="replacement2">
<entity id="1" type="Assignment"/>
<action entityId="1" type="UPD"/>

</pattern>


2 changes: 1 addition & 1 deletion src/main/resources/repairability/NPEfix/replacement3.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<pattern name="replacement">
<pattern name="replacement3">
<entity id="1" type="Return" role="Statement"/>
<action entityId="1" type="INS"/>

Expand Down
7 changes: 7 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement4.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<pattern name="replacement4">
<entity id="1" type="Assignment" />
<action entityId="1" type="MOV"/>

</pattern>


7 changes: 7 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement5.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<pattern name="replacement5">
<entity id="1" type="VariableRead" />
<action entityId="1" type="UPD"/>

</pattern>


10 changes: 10 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement6.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<pattern name="replacement6">
<entity id="1" type="FieldRead"/>
<action entityId="1" type="INS"/>

<entity id="2" type="*"/>
<action entityId="2" type="DEL"/>

</pattern>


10 changes: 10 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement7.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<pattern name="replacement7">
<entity id="1" type="FieldRead"/>
<action entityId="1" type="MOV"/>

<entity id="2" type="*"/>
<action entityId="2" type="DEL"/>

</pattern>


10 changes: 10 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement8.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<pattern name="replacement8">
<entity id="1" type="Invocation"/>
<action entityId="1" type="INS"/>

<entity id="2" type="*"/>
<action entityId="2" type="DEL"/>

</pattern>


10 changes: 10 additions & 0 deletions src/main/resources/repairability/NPEfix/replacement9.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<pattern name="replacement9">
<entity id="1" type="VariableRead"/>
<action entityId="1" type="INS"/>

<entity id="2" type="*"/>
<action entityId="2" type="DEL"/>

</pattern>


Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/*
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public void testRepairabilityInterface() throws Exception {
public void testRepairabilityAll() throws Exception {

FinalResult result = TestUtills.runRepairability("ALL", "/repairability_test_files/mixed/");
TestUtills.numberOfInstances(result, 2, 5);
TestUtills.numberOfInstances(result, 2, 3);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class NPEfixTest {
@Test
public void NPEfixTest() throws Exception {
FinalResult result = TestUtills.runRepairability("NPEfix", "/repairability_test_files/NPEfix/");
TestUtills.numberOfInstances(result, 18, 18);
TestUtills.numberOfInstances(result, 18, 16);
}

// @Test
Expand Down

0 comments on commit 6a3878e

Please sign in to comment.