DialPointer i1 = new DialPointer.Pin(1);
DialPointer i2 = null;
try {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(buffer);
out.writeObject(i1);
out.close();
ObjectInput in = new ObjectInputStream(
new ByteArrayInputStream(buffer.toByteArray()));
i2 = (DialPointer) in.readObject();
in.close();
}
catch (Exception e) {
e.printStackTrace();
}
assertEquals(i1, i2);
DialPointer i1 = new DialPointer.Pointer(1);
DialPointer i2 = null;
try {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(buffer);
out.writeObject(i1);
out.close();
ObjectInput in = new ObjectInputStream(
new ByteArrayInputStream(buffer.toByteArray()));
i2 = (DialPointer) in.readObject();
in.close();
}
catch (Exception e) {
e.printStackTrace();
}
assertEquals(i1, i2);
Clone fragments detected by clone detection tool
File path: /jfreechart-1.0.10/tests/org/jfree/chart/plot/dial/junit/DialPointerTests.java
|
|
File path: /jfreechart-1.0.10/tests/org/jfree/chart/plot/dial/junit/DialPointerTests.java
|
Method name: void testSerialization()
|
|
Method name: void testSerialization2()
|
Number of AST nodes: 11
|
|
Number of AST nodes: 11
|
|
1 | DialPointer i1 = new DialPointer.Pin(1);↵ | | 1 | DialPointer i1 = new DialPointer.Pointer(1);↵
|
2 | DialPointer i2 = null;↵ | | 2 | DialPointer i2 = null;↵
|
|
3 | try {↵ | | 3 | try {↵
|
4 | ByteArrayOutputStream buffer = new ByteArrayOutputStream();↵ | | 4 | ByteArrayOutputStream buffer = new ByteArrayOutputStream();↵
|
5 | ObjectOutput out = new ObjectOutputStream(buffer);↵ | | 5 | ObjectOutput out = new ObjectOutputStream(buffer);↵
|
6 | out.writeObject(i1);↵ | | 6 | out.writeObject(i1);↵
|
7 | out.close();↵ | | 7 | out.close();↵
|
|
8 | ObjectInput in = new ObjectInputStream(↵ | | 8 | ObjectInput in = new ObjectInputStream(↵
|
9 | new ByteArrayInputStream(buffer.toByteArray()));↵ | | 9 | new ByteArrayInputStream(buffer.toByteArray()));↵
|
10 | i2 = (DialPointer) in.readObject();↵ | | 10 | i2 = (DialPointer) in.readObject();↵
|
11 | in.close();↵ | | 11 | in.close();↵
|
12 | }↵ | | 12 | }↵
|
13 | catch (Exception e) {↵ | | 13 | catch (Exception e) {↵
|
14 | e.printStackTrace();↵ | | 14 | e.printStackTrace();↵
|
15 | }↵ | | 15 | }↵
|
16 | assertEquals(i1, i2); | | 16 | assertEquals(i1, i2);
|
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.1 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 69 |
-
{Refactorable}
Mapping Summary
Number of mapped statements | 11 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 21.0 |
Clone type | Type 2 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
1 | DialPointer i1 = new DialPointer.Pin(1); | | 1 | DialPointer i1 = new DialPointer.Pointer(1); |
2 | DialPointer i2 = null; | | 2 | DialPointer i2 = null; |
3 | try | | 3 | try |
4 | ByteArrayOutputStream buffer = new ByteArrayOutputStream(); | | 4 | ByteArrayOutputStream buffer = new ByteArrayOutputStream(); |
5 | ObjectOutput out = new ObjectOutputStream(buffer); | | 5 | ObjectOutput out = new ObjectOutputStream(buffer); |
6 | | | 6 | |
7 | | | 7 | |
8 | ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); | | 8 | ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); |
9 | i2 = (DialPointer)in.readObject(); | | 9 | i2 = (DialPointer)in.readObject(); |
10 | | | 10 | |
11 | assertEquals(i1, i2); | | 11 | assertEquals(i1, i2); |
Precondition Violations (2)
Row |
Violation |
1 | Expression new DialPointer.Pin(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted |
2 | Expression new DialPointer.Pointer(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted |