if (paramTable.isEditing()) { TableCellEditor cellEditor = paramTable.getCellEditor(paramTable.getEditingRow(), paramTable .getEditingColumn()); cellEditor.cancelCellEditing(); } int colSelected = paramTable.getSelectedColumn(); if (colSelected == 0 || colSelected == 1) { JOptionPane.showMessageDialog(null, JMeterUtils.getResString("column_delete_disallowed"), // $NON-NLS-1$ "Error", JOptionPane.ERROR_MESSAGE); return; } 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); } }
if (table.isEditing()) { TableCellEditor cellEditor = table.getCellEditor(table.getEditingRow(), table.getEditingColumn()); cellEditor.cancelCellEditing(); } int rowSelected = table.getSelectedRow(); if (rowSelected >= 0) { 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: 15 Number of AST nodes: 13
1
if (paramTable.isEditing()) {
1
if (table.isEditing()) {
2
				TableCellEditor cellEditor = paramTable.getCellEditor(paramTable.getEditingRow(), paramTable
2
			TableCellEditor cellEditor = table.getCellEditor(table.getEditingRow(), 
3
						.getEditingColumn());
3
table.getEditingColumn());
4
				cellEditor.cancelCellEditing();
4
			cellEditor.cancelCellEditing();
5
			}
5
		}
6
			int colSelected = paramTable.getSelectedColumn();
6
		int rowSelected = table.getSelectedRow();
7
			if (colSelected == 0 || colSelected == 1) {
7
		if (
8
				JOptionPane.showMessageDialog(null, 
9
						JMeterUtils.getResString("column_delete_disallowed"), // $NON-NLS-1$
10
						"Error",
11
						JOptionPane.ERROR_MESSAGE);
12
				return;
13
			}
14
			if (colSelected >= 0) {
8
rowSelected >= 0) {
15
				tableModel.removeColumn(colSelected);
9
			tableModel.removeRow(rowSelected);
16
				tableModel.fireTableDataChanged();
10
			tableModel.fireTableDataChanged();
17
				// Disable DELETE if there are no rows in the table to delete.
11
			// Disable DELETE if there are no rows in the table to delete.
18
				if (tableModel.getColumnCount() == 0) {
12
			if (tableModel.getRowCount() == 0) {
19
					deleteColumnButton.setEnabled(false);
13
				delete.setEnabled(false);
20
				}
14
			}
21
				// Table still contains one or more rows, so highlight (select)
15
			// Table still contains one or more rows, so highlight (select)
22
				// the appropriate one.
16
			// the appropriate one.
23
				else {
17
			else {
18
				int rowToSelect = rowSelected;
24
					if (colSelected >= tableModel.getColumnCount()) {
19
				if (rowSelected >= tableModel.getRowCount()) {
25
						colSelected = colSelected - 1;
20
					rowToSelect = rowSelected - 1;
26
					}
21
				}
27
					paramTable.setColumnSelectionInterval(colSelected, colSelected);
22
				table.setRowSelectionInterval(rowToSelect, rowToSelect);
28
				}
23
			}
29
			}
24
		}
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.5
Clones locationClones are in different classes
Number of node comparisons36
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements12
    Number of unmapped statements in the first code fragment3
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)6.6
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    if (paramTable.isEditing())
    1
    if (paramTable.isEditing())
    1
    if (table.isEditing())
    Differences
    Expression1Expression2Difference
    paramTabletableVARIABLE_NAME_MISMATCH
    1
    if (table.isEditing())
    2
    TableCellEditor cellEditor = paramTable.getCellEditor(paramTable.getEditingRow(), paramTable.getEditingColumn());
    2
    TableCellEditor cellEditor = paramTable.getCellEditor(paramTable.getEditingRow(), paramTable.getEditingColumn());
    2
    TableCellEditor cellEditor = table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
    Differences
    Expression1Expression2Difference
    paramTabletableVARIABLE_NAME_MISMATCH
    paramTabletableVARIABLE_NAME_MISMATCH
    paramTabletableVARIABLE_NAME_MISMATCH
    2
    TableCellEditor cellEditor = table.getCellEditor(table.getEditingRow(), table.getEditingColumn());
    3
    cellEditor.cancelCellEditing();
    3
    cellEditor.cancelCellEditing();
    4
    int colSelected = paramTable.getSelectedColumn();
    4
    int colSelected = paramTable.getSelectedColumn();
    4
    int rowSelected = table.getSelectedRow();
    Differences
    Expression1Expression2Difference
    colSelectedrowSelectedVARIABLE_NAME_MISMATCH
    getSelectedColumngetSelectedRowMETHOD_INVOCATION_NAME_MISMATCH
    paramTabletableVARIABLE_NAME_MISMATCH
    4
    int rowSelected = table.getSelectedRow();
    5
    if (colSelected == 0 || colSelected == 1)
    5
    if (colSelected == 0 || colSelected == 1)
    Preondition Violations
    Unmatched statement if(colSelected == 0 || colSelected == 1) cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                          
    6
    JOptionPane.showMessageDialog(null, JMeterUtils.getResString("column_delete_disallowed"), "Error", JOptionPane.ERROR_MESSAGE);
                                                                                                                                                                                                                                                                
    7
    return;
    7
    return;
    Preondition Violations
    Unmatched return;
                        
    8
    if (colSelected >= 0)
    8
    if (colSelected >= 0)
    5
    if (rowSelected >= 0)
    Differences
    Expression1Expression2Difference
    colSelectedrowSelectedVARIABLE_NAME_MISMATCH
    Preondition Violations
    Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5
    if (rowSelected >= 0)
    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) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression tableModel.removeRow(rowSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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;
    Preondition Violations
    Unmatched statement int rowToSelect=rowSelected; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    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 colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Preondition Violations
    Expression colSelected 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 rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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 (28)
    Row Violation
    1Unmatched statement if(colSelected == 0 || colSelected == 1) cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    2Unmatched return;
    3Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    5Expression tableModel.removeColumn(colSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression tableModel.removeRow(rowSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Expression tableModel.removeColumn(colSelected) is a void method call, and thus it cannot be parameterized
    8Expression tableModel.removeRow(rowSelected) is a void method call, and thus it cannot be parameterized
    9Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    11Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Unmatched statement int rowToSelect=rowSelected; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    14Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    15Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    16Expression tableModel.getColumnCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    17Expression tableModel.getRowCount() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    18Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    19Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    20Expression rowSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    21Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    22Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    23Expression paramTable.setColumnSelectionInterval(colSelected,colSelected) is a void method call, and thus it cannot be parameterized
    24Expression table.setRowSelectionInterval(rowToSelect,rowToSelect) is a void method call, and thus it cannot be parameterized
    25Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    26Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted
    27Expression colSelected cannot be parameterized, because it has dependencies to/from statements that will be extracted
    28Expression rowToSelect cannot be parameterized, because it has dependencies to/from statements that will be extracted