File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/config/Arguments.java | File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/http/modifier/UserParameterModifier.java | |||
Method name: Map getArgumentsAsMap()
|
Method name: void process()
|
|||
Number of AST nodes: 4 | Number of AST nodes: 4 | |||
1 | while (iter.hasNext()) {↵ | 1 | while (iter.hasNext()) {↵ | |
2 | Argument arg = (Argument) iter.next().getObjectValue();↵ | 2 | Argument arg = (Argument) iter.next().getObjectValue();↵ | |
3 | // Because CollectionProperty.mergeIn will not prevent adding two↵ | 3 | // ↵ | |
4 | // properties of the same name, we need to select the first↵ | 4 | if parameter name exists in http request↵ | |
5 | value so↵ | 5 | // then change its value↵ | |
6 | // that this element's values prevail over defaults provided by↵ | 6 | // ↵ | |
7 | // configuration↵ | |||
8 | // elements:↵ | |||
9 | if (!argMap.containsKey(arg.getName())) {↵ | |||
10 | argMap.put(arg.getName(), ↵ | 7 | (Note: each jmeter thread (ie user) gets to have unique values)↵ | |
8 | if (currentUser.containsKey(arg.getName())) {↵ | |||
11 | arg.getValue());↵ | 9 | arg.setValue((String) currentUser.get(arg.getName()));↵ | |
12 | }↵ | 10 | }↵ | |
13 | } | 11 |
| |
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.2 |
Clones location | Clones are in different classes having the same super class |
Number of node comparisons | 8 |
Number of mapped statements | 3 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 10.1 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | while (iter.hasNext()) | 7 | while (iter.hasNext()) | |||||||||||||
4 | Argument arg = (Argument)iter.next().getObjectValue(); | 8 | Argument arg = (Argument)iter.next().getObjectValue(); | |||||||||||||
5 | if (!argMap.containsKey(arg.getName())) |
| 9 | if (currentUser.containsKey(arg.getName())) | ||||||||||||
6 | argMap.put(arg.getName(), arg.getValue()); |
| | |||||||||||||
|
| 10 | arg.setValue((String)currentUser.get(arg.getName())); |
Row | Violation |
---|---|
1 | Expression !argMap.containsKey(arg.getName()) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression currentUser.containsKey(arg.getName()) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement argMap.put(arg.getName(),arg.getValue()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Unmatched statement arg.setValue((String)currentUser.get(arg.getName())); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |