summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFeideus <erwan.ulrich@gmail.com>2018-07-27 17:43:49 +0200
committerFeideus <erwan.ulrich@gmail.com>2018-07-27 17:43:49 +0200
commit1cab84dee9e6e9d6cc61b2807c33de996b808fbe (patch)
treee0209fed19db4dfebab100b5d2a9025e00facf7f /src
parent90357425a0ce84bbde4b8d4327bfe2556965e833 (diff)
downloadschemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.tar.gz
schemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.tar.bz2
schemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.zip
bug fixes
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main/java/org/schemaspy/model/ReportVector.java11
-rwxr-xr-xsrc/main/java/org/schemaspy/model/StackTraceLine.java14
2 files changed, 16 insertions, 9 deletions
diff --git a/src/main/java/org/schemaspy/model/ReportVector.java b/src/main/java/org/schemaspy/model/ReportVector.java
index b17b8b7..ba41bd9 100755
--- a/src/main/java/org/schemaspy/model/ReportVector.java
+++ b/src/main/java/org/schemaspy/model/ReportVector.java
@@ -62,7 +62,8 @@ public class ReportVector {
try {
BufferedReader infile = new BufferedReader(new FileReader(pathToFile));
while ((data = infile.readLine()) != null) {
- if (data.contains(":")) {
+ if (data.contains(":"))
+ {
if (!currentArray.isEmpty()) {
allLists.put(key, currentArray); // putting in the map the "title" of the data and values before stepping into the next block
currentArray = new ArrayList<>();
@@ -95,8 +96,8 @@ public class ReportVector {
for(int i = 0; i < maxSize ; i ++)
{
- String functionName = "unknown.this is abnormal behavior";
- String fileName = "unknown.this is abnormal behavior";
+ String functionName = "-1";
+ String fileName = "-1";
int lineNumber = -1;
if(i < allLists.get("functionNames").size()) {
@@ -163,9 +164,9 @@ public class ReportVector {
for(StackTraceLine stl : this.getStackTrace())
{
- var1 = stl.consistentFunctionNameHash(mutationTree);
+ var1 = stl.consistentFunctionNameHash(mutationTree,parentMutation); // parentMutation is to be ignored in similarity calculus
stl.setFunctionNameHash(var1);
- var2 = stl.consistentFileNameHash(mutationTree);
+ var2 = stl.consistentFileNameHash(mutationTree,parentMutation); // same here
stl.setFileNameHash(var2);
var3 = stl.getLineNumber();
diff --git a/src/main/java/org/schemaspy/model/StackTraceLine.java b/src/main/java/org/schemaspy/model/StackTraceLine.java
index 155bb2b..c695e85 100755
--- a/src/main/java/org/schemaspy/model/StackTraceLine.java
+++ b/src/main/java/org/schemaspy/model/StackTraceLine.java
@@ -1,5 +1,7 @@
package org.schemaspy.model;
+import java.util.ArrayList;
+
public class StackTraceLine {
private String functionName;
@@ -95,11 +97,13 @@ public class StackTraceLine {
return costs[s2.length()];
}
- public double consistentFunctionNameHash(GenericTree mutationTree)
+ public double consistentFunctionNameHash(GenericTree mutationTree,GenericTreeNode currentMutation)
{
double maxSimilarity = 0.0;
StackTraceLine closestStl = null;
- for(GenericTreeNode gtn: mutationTree.toArray())
+ ArrayList<GenericTreeNode> treeAsArray = mutationTree.toArray();
+ treeAsArray.remove(currentMutation); // remove the currentMutation so that the loop doesnt try to get the being-built rpv
+ for(GenericTreeNode gtn: treeAsArray)
{
for(StackTraceLine stl : gtn.getReportVector().getStackTrace())
{
@@ -120,11 +124,13 @@ public class StackTraceLine {
}
}
- public double consistentFileNameHash(GenericTree mutationTree)
+ public double consistentFileNameHash(GenericTree mutationTree,GenericTreeNode currentMutation)
{
double maxSimilarity = 0.0;
StackTraceLine closestStl = null;
- for(GenericTreeNode gtn: mutationTree.toArray())
+ ArrayList<GenericTreeNode> treeAsArray = mutationTree.toArray();
+ treeAsArray.remove(currentMutation);
+ for(GenericTreeNode gtn: treeAsArray)
{
for(StackTraceLine stl : gtn.getReportVector().getStackTrace())
{