final Data dataShadow = this.data; final boolean[] inUse = dataShadow.inUse; final byte[] pos = dataShadow.recvDecodingTables_pos;
final Data dataShadow = this.data; final boolean[] inUse = dataShadow.inUse; final byte[] block = dataShadow.block;
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/bzip2/CBZip2InputStream.java File path: /apache-ant-1.7.0/src/org/apache/tools/bzip2/CBZip2OutputStream.java
Method name: void recvDecodingTables() Method name: void generateMTFValues()
Number of AST nodes: 3 Number of AST nodes: 3
1
final Data dataShadow     = this.data;
1
final Data dataShadow         = this.data;
2
        final boolean[] inUse     = dataShadow.inUse;
2
        final boolean[] inUse   = dataShadow.inUse;
3
        final byte[] pos          = dataShadow.recvDecodingTables_pos;
3
        final byte[] block      = dataShadow.block;
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.0
Clones locationClones are in different classes
Number of node comparisons9
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements2
    Number of unmapped statements in the first code fragment1
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)0.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    final Data dataShadow = this.data;
                                                                          
                                                                          
    2
    final Data dataShadow = this.data;
    2
    final boolean[] inUse = dataShadow.inUse;
    2
    final boolean[] inUse = dataShadow.inUse;
    3
    final boolean[] inUse = dataShadow.inUse;
    Differences
    Expression1Expression2Difference
    org.apache.tools.bzip2.CBZip2InputStream.Dataorg.apache.tools.bzip2.CBZip2OutputStream.DataVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type boolean[] of variable dataShadow.inUse does not match with type boolean[] of variable dataShadow.inUse
    • Make classes org.apache.tools.bzip2.CBZip2InputStream.Data and org.apache.tools.bzip2.CBZip2OutputStream.Data extend a common superclass
    3
    final boolean[] inUse = dataShadow.inUse;
    3
    final byte[] pos = dataShadow.recvDecodingTables_pos;
    3
    final byte[] pos = dataShadow.recvDecodingTables_pos;
    4
    final byte[] block = dataShadow.block;
    Differences
    Expression1Expression2Difference
    posblockVARIABLE_NAME_MISMATCH
    org.apache.tools.bzip2.CBZip2InputStream.Dataorg.apache.tools.bzip2.CBZip2OutputStream.DataVARIABLE_TYPE_MISMATCH
    recvDecodingTables_posblockVARIABLE_NAME_MISMATCH
    Preondition Violations
    Type byte[] of variable dataShadow.recvDecodingTables_pos does not match with type byte[] of variable dataShadow.block
    • Make classes org.apache.tools.bzip2.CBZip2InputStream.Data and org.apache.tools.bzip2.CBZip2OutputStream.Data extend a common superclass
    Expression dataShadow.recvDecodingTables_pos cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression dataShadow.block cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4
    final byte[] block = dataShadow.block;
    Precondition Violations (5)
    Row Violation
    1Type boolean[] of variable dataShadow.inUse does not match with type boolean[] of variable dataShadow.inUse
    2Type byte[] of variable dataShadow.recvDecodingTables_pos does not match with type byte[] of variable dataShadow.block
    3Expression dataShadow.recvDecodingTables_pos cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression dataShadow.block cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Clone fragment #1 returns variables inUse, pos , while Clone fragment #2 returns variables inUse, block