if (colSelected >= 0) { tableModel.removeColumn(colSelected); tableModel.fireTableDataChanged(); // Disable DELETE if there are no rows in the table to delete. if (tableModel.getColumnCount() == 0) { deleteColumnButton.setEnabled(false); } // Table still contains one or more rows, so highlight (select) // the appropriate one. else { if (colSelected >= tableModel.getColumnCount()) { colSelected = colSelected - 1; } paramTable.setColumnSelectionInterval(colSelected, colSelected); } }
tableModel.removeRow(rowSelected); tableModel.fireTableDataChanged(); // Disable DELETE if there are no rows in the table to delete. if (tableModel.getRowCount() == 0) { delete.setEnabled(false); } // Table still contains one or more rows, so highlight (select) // the appropriate one. else { int rowToSelect = rowSelected; if (rowSelected >= tableModel.getRowCount()) { rowToSelect = rowSelected - 1; } table.setRowSelectionInterval(rowToSelect, rowToSelect); }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/modifiers/gui/UserParametersGui.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/ldap/config/gui/LDAPArgumentsPanel.java
Method name: void actionPerformed(ActionEvent) Method name: void deleteArgument()
Number of AST nodes: 8 Number of AST nodes: 8
1
if (colSelected >= 0) {
2
				tableModel.removeColumn(colSelected);
1
tableModel.removeRow(rowSelected);
3
				tableModel.fireTableDataChanged();
2
			tableModel.fireTableDataChanged();
4
				// Disable DELETE if there are no rows in the table to delete.
3
			// Disable DELETE if there are no rows in the table to delete.
5
				if (tableModel.getColumnCount() == 0) {
4
			if (tableModel.getRowCount() == 0) {
6
					deleteColumnButton.setEnabled(false);
5
				delete.setEnabled(false);
7
				}
6
			}
8
				// Table still contains one or more rows, so highlight (select)
7
			// Table still contains one or more rows, so highlight (select)
9
				// the appropriate one.
8
			// the appropriate one.
10
				else {
9
			else {
10
				int rowToSelect = rowSelected;
11
					if (colSelected >= tableModel.getColumnCount()) {
11
				if (rowSelected >= tableModel.getRowCount()) {
12
						colSelected = colSelected - 1;
12
					rowToSelect = rowSelected - 1;
13
					}
13
				}
14
					paramTable.setColumnSelectionInterval(colSelected, colSelected);
14
				table.setRowSelectionInterval(rowToSelect
15
				}
15
, rowToSelect);
16
			}
16
			}
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.4
Clones locationClones are in different classes
Number of node comparisons21
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)4.9
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    9
    tableModel.removeColumn(colSelected);
    9
    tableModel.removeColumn(colSelected);
    6
    tableModel.removeRow(rowSelected);
    Differences
    Expression1Expression2Difference
    removeColumnremoveRowMETHOD_INVOCATION_NAME_MISMATCH
    colSelectedrowSelectedVARIABLE_NAME_MISMATCH
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jorphan.gui.ObjectTableModelSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression tableModel.removeColumn(colSelected) is a void method call, and thus it cannot be parameterized
    Expression tableModel.removeRow(rowSelected) is a void method call, and thus it cannot be parameterized
    6
    tableModel.removeRow(rowSelected);
    10
    tableModel.fireTableDataChanged();
    10
    tableModel.fireTableDataChanged();
    7
    tableModel.fireTableDataChanged();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jorphan.gui.ObjectTableModelSUBCLASS_TYPE_MISMATCH
    7
    tableModel.fireTableDataChanged();
    11
    if (tableModel.getColumnCount() == 0)
    11
    if (tableModel.getColumnCount() == 0)
    8
    if (tableModel.getRowCount() == 0)
    Differences
    Expression1Expression2Difference
    getColumnCountgetRowCountMETHOD_INVOCATION_NAME_MISMATCH
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jorphan.gui.ObjectTableModelSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8
    if (tableModel.getRowCount() == 0)
    12
    deleteColumnButton.setEnabled(false);
    12
    deleteColumnButton.setEnabled(false);
    9
    delete.setEnabled(false);
    Differences
    Expression1Expression2Difference
    deleteColumnButtondeleteVARIABLE_NAME_MISMATCH
    9
    delete.setEnabled(false);
    else
    else
                                                                    
    10
    int rowToSelect = rowSelected;
    13
    if (colSelected >= tableModel.getColumnCount())
    13
    if (colSelected >= tableModel.getColumnCount())
    11
    if (rowSelected >= tableModel.getRowCount())
    Differences
    Expression1Expression2Difference
    colSelectedrowSelectedVARIABLE_NAME_MISMATCH
    getColumnCountgetRowCountMETHOD_INVOCATION_NAME_MISMATCH
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jorphan.gui.ObjectTableModelSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11
    if (rowSelected >= tableModel.getRowCount())
    14
    colSelected = colSelected - 1;
    14
    colSelected = colSelected - 1;
    12
    rowToSelect = rowSelected - 1;
    Differences
    Expression1Expression2Difference
    colSelectedrowToSelectVARIABLE_NAME_MISMATCH
    colSelectedrowSelectedVARIABLE_NAME_MISMATCH
    12
    rowToSelect = rowSelected - 1;
    15
    paramTable.setColumnSelectionInterval(colSelected, colSelected);
    15
    paramTable.setColumnSelectionInterval(colSelected, colSelected);
    13
    table.setRowSelectionInterval(rowToSelect, rowToSelect);
    Differences
    Expression1Expression2Difference
    setColumnSelectionIntervalsetRowSelectionIntervalMETHOD_INVOCATION_NAME_MISMATCH
    colSelectedrowToSelectVARIABLE_NAME_MISMATCH
    colSelectedrowToSelectVARIABLE_NAME_MISMATCH
    paramTabletableVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) is a void method call, and thus it cannot be parameterized
    Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) is a void method call, and thus it cannot be parameterized
    Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13
    table.setRowSelectionInterval(rowToSelect, rowToSelect);
    Precondition Violations (14)
    Row Violation
    1Expression tableModel.removeColumn(colSelected) is a void method call, and thus it cannot be parameterized
    2Expression tableModel.removeRow(rowSelected) is a void method call, and thus it cannot be parameterized
    3Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    8Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) is a void method call, and thus it cannot be parameterized
    10Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) is a void method call, and thus it cannot be parameterized
    11Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    14Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted