diff options
author | Feideus <erwan.ulrich@gmail.com> | 2018-07-27 17:43:49 +0200 |
---|---|---|
committer | Feideus <erwan.ulrich@gmail.com> | 2018-07-27 17:43:49 +0200 |
commit | 1cab84dee9e6e9d6cc61b2807c33de996b808fbe (patch) | |
tree | e0209fed19db4dfebab100b5d2a9025e00facf7f /src/main | |
parent | 90357425a0ce84bbde4b8d4327bfe2556965e833 (diff) | |
download | schemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.tar.gz schemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.tar.bz2 schemafuzz-1cab84dee9e6e9d6cc61b2807c33de996b808fbe.zip |
bug fixes
Diffstat (limited to 'src/main')
-rwxr-xr-x | src/main/java/org/schemaspy/model/ReportVector.java | 11 | ||||
-rwxr-xr-x | src/main/java/org/schemaspy/model/StackTraceLine.java | 14 |
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()) { |