Skip to content

Commit 1cad743

Browse files
authored
prepared for execution on bears dataset repositories (#205)
* prepared for execution on bears dataset * EntityTypeInfoResolver bug fixed
1 parent 00d1b31 commit 1cad743

File tree

5 files changed

+31
-5
lines changed

5 files changed

+31
-5
lines changed

pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,12 @@
8585
<artifactId>org.eclipse.jgit</artifactId>
8686
<version>3.5.3.201412180710-r</version>
8787
</dependency>
88+
<!-- <dependency>
89+
<groupId>org.eclipse.jgit</groupId>
90+
<artifactId>org.eclipse.jgit</artifactId>
91+
<version>5.6.0.201912101111-r</version>
92+
</dependency> -->
93+
8894
<dependency>
8995
<groupId>org.gitective</groupId>
9096
<artifactId>gitective-core</artifactId>

src/main/java/fr/inria/coming/changeminer/analyzer/instancedetector/ChangePatternInstance.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,11 @@ public void setPattern(ChangePatternSpecification pattern) {
8383

8484
@Override
8585
public String toString() {
86-
return "ChangePatternInstance [actions=" + actions + "]";
86+
try {
87+
return "ChangePatternInstance [actions=" + actions + "]";
88+
} catch (Exception e) {
89+
return "";
90+
}
8791
}
8892

8993
public Map<PatternAction, MatchingAction> getMapping() {

src/main/java/fr/inria/coming/repairability/repairtools/Arja.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,12 @@ public boolean filter(ChangePatternInstance instance, IRevision revision, Diff d
8585
if (!mapping.hasSrc(((Insert) op.getAction()).getParent()))
8686
return false;
8787

88-
CtElement srcRoot = ASTInfoResolver.getRootNode(((InsertOperation) op).getParent());
88+
CtElement parentOfInsertedNode = ((InsertOperation) op).getParent();
89+
90+
if(parentOfInsertedNode == null) // smallcreep__cucumber-seeds
91+
return false;
92+
93+
CtElement srcRoot = ASTInfoResolver.getRootNode(parentOfInsertedNode);
8994
return canBeReproducedFromSrc(srcRoot, (CtStatement) op.getSrcNode());
9095
} else if (op instanceof UpdateOperation) {
9196
return canBeReproducedFromSrc(ASTInfoResolver.getRootNode(op.getSrcNode()),
@@ -136,8 +141,13 @@ public boolean filter(ChangePatternInstance instance, IRevision revision, Diff d
136141
// the inserted node is a part of a parent inserted node
137142
return false;
138143

144+
CtElement insertedNodeParent = ((InsertOperation)insOp).getParent();
145+
146+
if(insertedNodeParent == null)
147+
return false;
148+
139149
List<CtElement> insPars =
140-
ASTInfoResolver.getNSubsequentParents(((InsertOperation)insOp).getParent(), INS_DEL_COMMON_PAR_HEIGHT),
150+
ASTInfoResolver.getNSubsequentParents(insertedNodeParent, INS_DEL_COMMON_PAR_HEIGHT),
141151
delPars = ASTInfoResolver.getNSubsequentParents(delOp.getSrcNode(), INS_DEL_COMMON_PAR_HEIGHT);
142152

143153
Set<CtElement> insDistinctParsSet = new HashSet<CtElement>();
@@ -147,7 +157,7 @@ public boolean filter(ChangePatternInstance instance, IRevision revision, Diff d
147157
if (insDistinctParsSet.size() == insPars.size())
148158
return false;
149159

150-
CtElement srcRoot = ASTInfoResolver.getRootNode(((InsertOperation) op).getParent());
160+
CtElement srcRoot = ASTInfoResolver.getRootNode(insertedNodeParent);
151161
return canBeReproducedFromSrc(srcRoot, (CtStatement) op.getSrcNode());
152162
}
153163

src/main/java/fr/inria/coming/repairability/repairtools/JGenProg.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,12 @@ private boolean doesElementOccursInSrcNode(CtElement srcNode, CtElement element)
101101

102102
String elementStr = element.toString();
103103
for (CtElement srcElement : allSrcElements) {
104-
String srcElementStr = srcElement.toString();
104+
String srcElementStr;
105+
try {
106+
srcElementStr = srcElement.toString();
107+
}catch(Exception e) {
108+
continue; // ex.: on "org-tigris-jsapar__jsapar" repo
109+
}
105110
if (srcElementStr.equals(elementStr))
106111
return true;
107112
else if (srcElementStr.replace(elementStr, "").trim().equals(elementStr.trim()))

src/main/java/fr/inria/coming/utils/EntityTypesInfoResolver.java

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ private void loadChildrenToParentsRelationsBetweenEntityTypes() {
3333
childrenToParentsRelationsBetweenEntityTypes = new HashMap<>();
3434
try {
3535
Scanner sc = new Scanner(new File(getClass().getClassLoader().getResource(CLASSES_HIERARCHY_FILE_NAME).getFile()));
36+
// Scanner sc = new Scanner(new File("/data/template-based/coming-test/data.txt"));
3637

3738
while (sc.hasNextLine()) {
3839
String line = sc.nextLine();

0 commit comments

Comments
 (0)