for (int i = 0; i < threads; i++) { getProceduresThreads[i].join(); getProductNameThreads[i].join(); getProductVersionThreads[i].join(); getJDBCVersionThreads[i].join(); getTablesThreads[i].join(); getColumnsThreads[i].join(); }
for (int i = 0; i < threads; i++) { getProceduresThreads[i].start(); getProductNameThreads[i].start(); getProductVersionThreads[i].start(); getJDBCVersionThreads[i].start(); getTablesThreads[i].start(); getColumnsThreads[i].start(); }
Clone fragments detected by clone detection tool
File path: /sql12/test/adhoc/test/DBMetaDataConcurrencyTester.java File path: /sql12/test/adhoc/test/DBMetaDataConcurrencyTester.java
Method name: void main(String[]) Method name: void main(String[])
Number of AST nodes: 7 Number of AST nodes: 7
1
for (int i = 0; i < threads; i++) {
1
for (int i = 0; i < threads; i++) {
2
            getProceduresThreads[i].join();
2
            getProceduresThreads[i].start();
3
            getProductNameThreads[i].join();
3
            getProductNameThreads[i].start();
4
            getProductVersionThreads[i].join();
4
            getProductVersionThreads[i].start();
5
            getJDBCVersionThreads[i].join();
5
            getJDBCVersionThreads[i].start();
6
            getTablesThreads[i].join();
6
            getTablesThreads[i].start();
7
            getColumnsThreads[i].join();
7
            getColumnsThreads[i].start();
8
        }
8
        }
Summary
Number of common nesting structure subtrees1
Number of refactorable cases1
Number of non-refactorable cases0
Time elapsed for finding largest common nesting structure subtrees (ms)0.1
Clones locationClones are in the same method
Number of node comparisons50
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)10.9
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    22
    for (int i = 0; i < threads; i++)
    15
    for (int i = 0; i < threads; i++)
    23
    getProceduresThreads[i].join();
    23
    getProceduresThreads[i].join();
    16
    getProceduresThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getProceduresThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProceduresThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProceduresThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getProceduresThreads[i].start() is a void method call, and thus it cannot be parameterized
    16
    getProceduresThreads[i].start();
    24
    getProductNameThreads[i].join();
    24
    getProductNameThreads[i].join();
    17
    getProductNameThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getProductNameThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProductNameThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProductNameThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getProductNameThreads[i].start() is a void method call, and thus it cannot be parameterized
    17
    getProductNameThreads[i].start();
    25
    getProductVersionThreads[i].join();
    25
    getProductVersionThreads[i].join();
    18
    getProductVersionThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getProductVersionThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProductVersionThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getProductVersionThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getProductVersionThreads[i].start() is a void method call, and thus it cannot be parameterized
    18
    getProductVersionThreads[i].start();
    26
    getJDBCVersionThreads[i].join();
    26
    getJDBCVersionThreads[i].join();
    19
    getJDBCVersionThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getJDBCVersionThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getJDBCVersionThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getJDBCVersionThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getJDBCVersionThreads[i].start() is a void method call, and thus it cannot be parameterized
    19
    getJDBCVersionThreads[i].start();
    27
    getTablesThreads[i].join();
    27
    getTablesThreads[i].join();
    20
    getTablesThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getTablesThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getTablesThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getTablesThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getTablesThreads[i].start() is a void method call, and thus it cannot be parameterized
    20
    getTablesThreads[i].start();
    28
    getColumnsThreads[i].join();
    28
    getColumnsThreads[i].join();
    21
    getColumnsThreads[i].start();
    Differences
    Expression1Expression2Difference
    joinstartMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression getColumnsThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getColumnsThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression getColumnsThreads[i].join() is a void method call, and thus it cannot be parameterized
    Expression getColumnsThreads[i].start() is a void method call, and thus it cannot be parameterized
    21
    getColumnsThreads[i].start();
    Precondition Violations (24)
    Row Violation
    1Expression getProceduresThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression getProceduresThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression getProceduresThreads[i].join() is a void method call, and thus it cannot be parameterized
    4Expression getProceduresThreads[i].start() is a void method call, and thus it cannot be parameterized
    5Expression getProductNameThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression getProductNameThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression getProductNameThreads[i].join() is a void method call, and thus it cannot be parameterized
    8Expression getProductNameThreads[i].start() is a void method call, and thus it cannot be parameterized
    9Expression getProductVersionThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Expression getProductVersionThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11Expression getProductVersionThreads[i].join() is a void method call, and thus it cannot be parameterized
    12Expression getProductVersionThreads[i].start() is a void method call, and thus it cannot be parameterized
    13Expression getJDBCVersionThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Expression getJDBCVersionThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    15Expression getJDBCVersionThreads[i].join() is a void method call, and thus it cannot be parameterized
    16Expression getJDBCVersionThreads[i].start() is a void method call, and thus it cannot be parameterized
    17Expression getTablesThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    18Expression getTablesThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    19Expression getTablesThreads[i].join() is a void method call, and thus it cannot be parameterized
    20Expression getTablesThreads[i].start() is a void method call, and thus it cannot be parameterized
    21Expression getColumnsThreads[i].join() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    22Expression getColumnsThreads[i].start() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    23Expression getColumnsThreads[i].join() is a void method call, and thus it cannot be parameterized
    24Expression getColumnsThreads[i].start() is a void method call, and thus it cannot be parameterized