File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/JMeter.java | File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/JMeter.java | |||
Method name: void convertSubTree(HashTree)
|
Method name: void convertSubTree(HashTree)
|
|||
Number of AST nodes: 15 | Number of AST nodes: 14 | |||
1 | JMeterTreeNode item = (JMeterTreeNode) o;↵ | 1 | TestElement item = (TestElement) o;↵ | |
2 | if (item.isEnabled()) {↵ | 2 | if (item.isEnabled()) {↵ | |
3 | // Replacement only needs to occur when starting the engine↵ | 3 | ↵ | |
4 | // @see StandardJMeterEngine.run()↵ | |||
5 | if (item.getUserObject() instanceof ReplaceableController) {↵ | 4 | if (item instanceof ReplaceableController) {↵ | |
5 | // HACK: force the controller to load its tree↵ | |||
6 | ReplaceableController rc = (ReplaceableController) item↵ | 6 | ReplaceableController rc = (ReplaceableController) item↵ | |
7 | .getTestElement();↵ | 7 | .clone();↵ | |
8 | HashTree subTree = tree.getTree(item);↵ | 8 | HashTree subTree = tree.getTree(item);↵ | |
9 | if (subTree != null) {↵ | 9 | if (subTree != null) {↵ | |
10 | HashTree replacementTree = rc↵ | 10 | HashTree replacementTree = rc↵ | |
11 | .getReplacementSubTree();↵ | 11 | .getReplacementSubTree();↵ | |
12 | if (replacementTree != null) {↵ | 12 | if (replacementTree != null) {↵ | |
13 | convertSubTree(replacementTree);↵ | 13 | convertSubTree(replacementTree);↵ | |
14 | tree.replace(item, rc);↵ | 14 | tree.replace(item, rc);↵ | |
15 | tree.set(rc, replacementTree);↵ | 15 | tree.set(rc, replacementTree);↵ | |
16 | }↵ | 16 | }↵ | |
17 | }↵ | 17 | }↵ | |
18 | } else {↵ | 18 | else {↵ | |
19 | convertSubTree(tree.getTree(item));↵ | 19 | convertSubTree(tree.getTree(item));↵ | |
20 | TestElement testElement = item.getTestElement();↵ | 20 | }↵ | |
21 | } else {↵ | |||
21 | tree.replace(item, testElement);↵ | 22 | convertSubTree(tree.getTree(item));↵ | |
22 | }↵ | 23 | }↵ | |
23 | } else {↵ | 24 | } else {↵ | |
24 | tree.remove(item);↵ | 25 | tree.remove(item);↵ | |
25 | } | 26 |
| |
See real code fragment | See real code fragment |
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.3 |
Clones location | Clones are in the same method |
Number of node comparisons | 28 |
Number of mapped statements | 8 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 853.4 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
22 | ReplaceableController rc = (ReplaceableController)item.getTestElement(); |
| 8 | ReplaceableController rc = (ReplaceableController)item.clone(); | ||||||||||||||||||
23 | HashTree subTree = tree.getTree(item); |
| 9 | HashTree subTree = tree.getTree(item); | ||||||||||||||||||
24 | if (subTree != null) | 10 | if (subTree != null) | |||||||||||||||||||
25 | HashTree replacementTree = rc.getReplacementSubTree(); | 11 | HashTree replacementTree = rc.getReplacementSubTree(); | |||||||||||||||||||
26 | if (replacementTree != null) | 12 | if (replacementTree != null) | |||||||||||||||||||
27 | convertSubTree(replacementTree); | 13 | convertSubTree(replacementTree); | |||||||||||||||||||
28 | tree.replace(item, rc); |
| 14 | tree.replace(item, rc); | ||||||||||||||||||
29 | tree.set(rc, replacementTree); | 15 | tree.set(rc, replacementTree); | |||||||||||||||||||
| else | |||||||||||||||||||||
|
| 16 | convertSubTree(tree.getTree(item)); |
Row | Violation |
---|---|
1 | Type org.apache.jmeter.testelement.TestElement of variable item.getTestElement() does not match with type java.lang.Object of variable item.clone() |
2 | Type org.apache.jmeter.gui.tree.JMeterTreeNode of variable item does not match with type org.apache.jmeter.testelement.TestElement of variable item |
3 | Type org.apache.jmeter.gui.tree.JMeterTreeNode of variable item does not match with type org.apache.jmeter.testelement.TestElement of variable item |
4 | Type org.apache.jmeter.gui.tree.JMeterTreeNode of variable item does not match with type org.apache.jmeter.testelement.TestElement of variable item |
5 | Unmatched statement convertSubTree(tree.getTree(item)); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |