File path: /apache-ant-1.7.0/src/org/apache/tools/ant/taskdefs/Java.java | File path: /apache-ant-1.7.0/src/org/apache/tools/ant/util/StringUtils.java | |||
Method name: void log(Throwable)
|
Method name: String getStackTrace(Throwable)
|
|||
Number of AST nodes: 5 | Number of AST nodes: 6 | |||
1 | StringWriter sw = new StringWriter();↵ | 1 | StringWriter sw = new StringWriter();↵ | |
2 | PrintWriter w = new PrintWriter(sw);↵ | 2 | PrintWriter pw = new PrintWriter(sw, true);↵ | |
3 | t.printStackTrace(w);↵ | 3 | t.printStackTrace(pw);↵ | |
4 | w.close();↵ | 4 | pw.flush();↵ | |
5 | log(sw.toString(), Project.MSG_ERR↵ | 5 | pw.close();↵ | |
6 | ); | 6 | return sw.toString(); | |
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.0 |
Clones location | Clones are in different classes |
Number of node comparisons | 13 |
Number of mapped statements | 5 |
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) | 0.0 |
Clone type | Type 3 |
ID | Statement | ID | Statement | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | StringWriter sw = new StringWriter(); | 1 | StringWriter sw = new StringWriter(); | |||||||||||||||||||||||||
2 | PrintWriter w = new PrintWriter(sw); |
| 2 | PrintWriter pw = new PrintWriter(sw, true); | ||||||||||||||||||||||||
3 | t.printStackTrace(w); |
| 3 | t.printStackTrace(pw); | ||||||||||||||||||||||||
4 | w.close(); |
| 5 | pw.close(); | ||||||||||||||||||||||||
5 | log(sw.toString(), Project.MSG_ERR); |
| 4 | pw.flush(); | ||||||||||||||||||||||||
| 6 | return sw.toString(); |
Row | Violation |
---|---|
1 | Expression new PrintWriter(sw) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression new PrintWriter(sw,true) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
3 | Expression log(sw.toString(),Project.MSG_ERR) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
4 | Expression pw.flush() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
5 | Expression log(sw.toString(),Project.MSG_ERR) is a void method call, and thus it cannot be parameterized |
6 | Expression pw.flush() is a void method call, and thus it cannot be parameterized |
7 | Expression log(sw.toString(),Project.MSG_ERR) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
8 | Expression pw.flush() cannot be parameterized, because it has dependencies to/from statements that will be extracted |
9 | Expression log(sw.toString(),Project.MSG_ERR) is a void method call, and thus it cannot be parameterized |
10 | Expression pw.flush() is a void method call, and thus it cannot be parameterized |
11 | Clone fragment #1 returns variables , while Clone fragment #2 returns variables sw |