String action = e.getActionCommand(); if (action.equals(DELETE_COMMAND)) { if (tableModel.getRowCount() > 0) { // If a table cell is being edited, we must cancel the editing // before deleting the row. if (cookieTable.isEditing()) { TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn()); cellEditor.cancelCellEditing(); } int rowSelected = cookieTable.getSelectedRow(); if (rowSelected != -1) { tableModel.removeRow(rowSelected); tableModel.fireTableDataChanged(); // Disable the DELETE and SAVE buttons if no rows remaining // after delete. if (tableModel.getRowCount() == 0) { deleteButton.setEnabled(false); saveButton.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; } cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect); } } } } else if (action.equals(ADD_COMMAND)) { // If a table cell is being edited, we should accept the current // value and stop the editing before adding a new row. if (cookieTable.isEditing()) { TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn()); cellEditor.stopCellEditing(); } tableModel.addNewRow(); tableModel.fireTableDataChanged(); // Enable the DELETE and SAVE buttons if they are currently // disabled. if (!deleteButton.isEnabled()) { deleteButton.setEnabled(true); } if (!saveButton.isEnabled()) { saveButton.setEnabled(true); } // Highlight (select) the appropriate row. int rowToSelect = tableModel.getRowCount() - 1; cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect); } else if (action.equals(LOAD_COMMAND)) { try { final String [] _txt={".txt"}; //$NON-NLS-1$ final JFileChooser chooser = FileDialoger.promptToOpenFile(_txt); if (chooser != null) { CookieManager manager = new CookieManager(); manager.addFile(chooser.getSelectedFile().getAbsolutePath()); for (int i = 0; i < manager.getCookieCount() ; i++){ addCookieToTable(manager.get(i)); } tableModel.fireTableDataChanged(); if (tableModel.getRowCount() > 0) { deleteButton.setEnabled(true); saveButton.setEnabled(true); } } } catch (IOException ex) { log.error("", ex); } } else if (action.equals(SAVE_COMMAND)) { try { final JFileChooser chooser = FileDialoger.promptToSaveFile("cookies.txt"); //$NON-NLS-1$ if (chooser != null) { ((CookieManager) createTestElement()).save(chooser.getSelectedFile().getAbsolutePath()); } } catch (IOException ex) { log.error("", ex); } }
String action = e.getActionCommand(); if (action.equals(DELETE_COMMAND)) { if (tableModel.getRowCount() > 0) { // If a table cell is being edited, we must cancel the editing // before deleting the row. if (headerTable.isEditing()) { TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn()); cellEditor.cancelCellEditing(); } int rowSelected = headerTable.getSelectedRow(); if (rowSelected != -1) { tableModel.removeRow(rowSelected); tableModel.fireTableDataChanged(); // Disable the DELETE and SAVE buttons if no rows remaining // after delete if (tableModel.getRowCount() == 0) { deleteButton.setEnabled(false); saveButton.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; } headerTable.setRowSelectionInterval(rowToSelect, rowToSelect); } } } } else if (action.equals(ADD_COMMAND)) { // If a table cell is being edited, we should accept the current // value and stop the editing before adding a new row. if (headerTable.isEditing()) { TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn()); cellEditor.stopCellEditing(); } tableModel.addNewRow(); tableModel.fireTableDataChanged(); // Enable the DELETE and SAVE buttons if they are currently // disabled. if (!deleteButton.isEnabled()) { deleteButton.setEnabled(true); } if (!saveButton.isEnabled()) { saveButton.setEnabled(true); } // Highlight (select) the appropriate row. int rowToSelect = tableModel.getRowCount() - 1; headerTable.setRowSelectionInterval(rowToSelect, rowToSelect); } else if (action.equals(LOAD_COMMAND)) { try { final JFileChooser chooser = FileDialoger.promptToOpenFile(); if (chooser != null) { headerManager.addFile(chooser.getSelectedFile().getAbsolutePath()); tableModel.fireTableDataChanged(); if (tableModel.getRowCount() > 0) { deleteButton.setEnabled(true); saveButton.setEnabled(true); } } } catch (IOException ex) { log.error("Could not load headers", ex); } } else if (action.equals(SAVE_COMMAND)) { try { final JFileChooser chooser = FileDialoger.promptToSaveFile(null); if (chooser != null) { headerManager.save(chooser.getSelectedFile().getAbsolutePath()); } } catch (IOException ex) { log.error("Could not save headers", ex); } }
Clone fragments detected by clone detection tool
File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/http/gui/CookiePanel.java File path: /jakarta-jmeter-2.3.2/src/org/apache/jmeter/protocol/http/gui/HeaderPanel.java
Method name: void actionPerformed(ActionEvent) Method name: void actionPerformed(ActionEvent)
Number of AST nodes: 47 Number of AST nodes: 43
1
String action = e.getActionCommand();
1
String action = e.getActionCommand();
2
		if (action.equals(DELETE_COMMAND)) {
2
		if (action.equals(DELETE_COMMAND)) {
3
			if (tableModel.getRowCount() > 0) {
3
			if (tableModel.getRowCount() > 0) {
4
				// If a table cell is being edited, we must cancel the editing
4
				// If a table cell is being edited, we must cancel the editing
5
				// before deleting the row.
5
				// before deleting the row.
6
				if (cookieTable.isEditing()) {
6
				if (headerTable.isEditing()) {
7
					TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(),
7
					TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(),
8
							cookieTable.getEditingColumn());
8
							headerTable.getEditingColumn());
9
					cellEditor.cancelCellEditing();
9
					cellEditor.cancelCellEditing();
10
				}
10
				}
11
				int rowSelected = cookieTable.getSelectedRow();
11
				int rowSelected = headerTable.getSelectedRow();
12
				if (rowSelected != -1) {
12
				if (rowSelected != -1) {
13
					tableModel.removeRow(rowSelected);
13
					tableModel.removeRow(rowSelected);
14
					tableModel.fireTableDataChanged();
14
					tableModel.fireTableDataChanged();
15
					// Disable the DELETE and SAVE buttons if no rows remaining
15
					// Disable the DELETE and SAVE buttons if no rows remaining
16
					// after delete.
16
					// after delete
17
					if (tableModel.getRowCount() == 0) {
17
					if (tableModel.getRowCount() == 0) {
18
						deleteButton.setEnabled(false);
18
						deleteButton.setEnabled(false);
19
						saveButton.setEnabled(false);
19
						saveButton.setEnabled(false);
20
					}
20
					}
21
					// Table still contains one or more rows, so highlight
21
					// Table still contains one or more rows, so highlight
22
					// (select) the appropriate one.
22
					// (select) the appropriate one.
23
					else {
23
					else {
24
						int rowToSelect = rowSelected;
24
						int rowToSelect = rowSelected;
25
						if (rowSelected >= tableModel.getRowCount()) {
25
						if (rowSelected >= tableModel.getRowCount()) {
26
							rowToSelect = rowSelected - 1;
26
							rowToSelect = rowSelected - 1;
27
						}
27
						}
28
						cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
28
						headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
29
					}
29
					}
30
				}
30
				}
31
			}
31
			}
32
		} else if (action.equals(ADD_COMMAND)) {
32
		} else if (action.equals(ADD_COMMAND)) {
33
			// If a table cell is being edited, we should accept the current
33
			// If a table cell is being edited, we should accept the current
34
			// value and stop the editing before adding a new row.
34
			// value and stop the editing before adding a new row.
35
			if (cookieTable.isEditing()) {
35
			if (headerTable.isEditing()) {
36
				TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(),
36
				TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(),
37
						cookieTable.getEditingColumn());
37
						headerTable.getEditingColumn());
38
				cellEditor.stopCellEditing();
38
				cellEditor.stopCellEditing();
39
			}
39
			}
40
			tableModel.addNewRow();
40
			tableModel.addNewRow();
41
			tableModel.fireTableDataChanged();
41
			tableModel.fireTableDataChanged();
42
			// Enable the DELETE and SAVE buttons if they are currently
42
			// Enable the DELETE and SAVE buttons if they are currently
43
			// disabled.
43
			// disabled.
44
			if (!deleteButton.isEnabled()) {
44
			if (!deleteButton.isEnabled()) {
45
				deleteButton.setEnabled(true);
45
				deleteButton.setEnabled(true);
46
			}
46
			}
47
			if (!saveButton.isEnabled()) {
47
			if (!saveButton.isEnabled()) {
48
				saveButton.setEnabled(true);
48
				saveButton.setEnabled(true);
49
			}
49
			}
50
			// Highlight (select) the appropriate row.
50
			// Highlight (select) the appropriate row.
51
			int rowToSelect = tableModel.getRowCount() - 1;
51
			int rowToSelect = tableModel.getRowCount() - 1;
52
			cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
52
			headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
53
		} else if (action.equals(LOAD_COMMAND)) {
53
		} else if (action.equals(LOAD_COMMAND)) {
54
			try {
54
			try {
55
                final String [] _txt={".txt"}; //$NON-NLS-1$
56
				final JFileChooser chooser = FileDialoger.promptToOpenFile(_txt);
55
				final JFileChooser chooser = FileDialoger.promptToOpenFile();
57
				if (chooser != null) {
56
				if (chooser != null) {
58
					CookieManager manager = new CookieManager();
57
					
59
					manager.addFile(chooser.getSelectedFile().getAbsolutePath());
60
                    for (int i = 0; i < manager.getCookieCount() ; i++){
61
                        addCookieToTable(manager.get(i));
62
                    }
58
headerManager.addFile(chooser.getSelectedFile().getAbsolutePath());
63
					tableModel.fireTableDataChanged();
59
					tableModel.fireTableDataChanged();
64
					if (tableModel.getRowCount() > 0) {
60
					if (tableModel.getRowCount() > 0) {
65
						deleteButton.setEnabled(true);
61
						deleteButton.setEnabled(true);
66
						saveButton.setEnabled(true);
62
						saveButton.setEnabled(true);
67
					}
63
					}
68
				}
64
				}
69
			} catch (IOException ex) {
65
			} catch (IOException ex) {
70
				log.error("", ex);
66
				log.error("Could not load headers", ex);
71
			}
67
			}
72
		} else if (action.equals(SAVE_COMMAND)) {
68
		} else if (action.equals(SAVE_COMMAND)) {
73
			try {
69
			try {
74
				final JFileChooser chooser = FileDialoger.promptToSaveFile("cookies.txt"); //$NON-NLS-1$
70
				final JFileChooser chooser = FileDialoger.promptToSaveFile(null);
75
				if (chooser != null) {
71
				if (chooser != null) {
76
					((CookieManager) createTestElement()).save(chooser.getSelectedFile().getAbsolutePath());
72
					headerManager.save(chooser.getSelectedFile().getAbsolutePath());
77
				}
73
				}
78
			} catch (IOException ex) {
74
			} catch (IOException ex) {
79
				log.error("", ex);
75
				log.error("Could not save headers", ex);
80
			}
76
			}
81
		}
77
		}
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)8.4
Clones locationClones are in different classes having the same super class
Number of node comparisons236
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements43
    Number of unmapped statements in the first code fragment4
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)27.8
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    String action = e.getActionCommand();
    1
    String action = e.getActionCommand();
    2
    if (action.equals(DELETE_COMMAND))
    2
    if (action.equals(DELETE_COMMAND))
    3
    if (tableModel.getRowCount() > 0)
    3
    if (tableModel.getRowCount() > 0)
    3
    if (tableModel.getRowCount() > 0)
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    3
    if (tableModel.getRowCount() > 0)
    4
    if (cookieTable.isEditing())
    4
    if (cookieTable.isEditing())
    4
    if (headerTable.isEditing())
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    4
    if (headerTable.isEditing())
    5
    TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
    5
    TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
    5
    TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn());
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    5
    TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn());
    6
    cellEditor.cancelCellEditing();
    6
    cellEditor.cancelCellEditing();
    7
    int rowSelected = cookieTable.getSelectedRow();
    7
    int rowSelected = cookieTable.getSelectedRow();
    7
    int rowSelected = headerTable.getSelectedRow();
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    7
    int rowSelected = headerTable.getSelectedRow();
    8
    if (rowSelected != -1)
    8
    if (rowSelected != -1)
    9
    tableModel.removeRow(rowSelected);
    9
    tableModel.removeRow(rowSelected);
    9
    tableModel.removeRow(rowSelected);
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression tableModel cannot be unified with expression tableModel , because common superclass javax.swing.table.AbstractTableModel does not declare member(s) public void removeRow(int)
    9
    tableModel.removeRow(rowSelected);
    10
    tableModel.fireTableDataChanged();
    10
    tableModel.fireTableDataChanged();
    10
    tableModel.fireTableDataChanged();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    10
    tableModel.fireTableDataChanged();
    11
    if (tableModel.getRowCount() == 0)
    11
    if (tableModel.getRowCount() == 0)
    11
    if (tableModel.getRowCount() == 0)
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    11
    if (tableModel.getRowCount() == 0)
    12
    deleteButton.setEnabled(false);
    12
    deleteButton.setEnabled(false);
    13
    saveButton.setEnabled(false);
    13
    saveButton.setEnabled(false);
    else
    else
    14
    int rowToSelect = rowSelected;
    14
    int rowToSelect = rowSelected;
    15
    if (rowSelected >= tableModel.getRowCount())
    15
    if (rowSelected >= tableModel.getRowCount())
    15
    if (rowSelected >= tableModel.getRowCount())
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    15
    if (rowSelected >= tableModel.getRowCount())
    16
    rowToSelect = rowSelected - 1;
    16
    rowToSelect = rowSelected - 1;
    17
    cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    17
    cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    17
    headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    17
    headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    18
    else if (action.equals(ADD_COMMAND))
    18
    else if (action.equals(ADD_COMMAND))
    19
    if (cookieTable.isEditing())
    19
    if (cookieTable.isEditing())
    19
    if (headerTable.isEditing())
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    19
    if (headerTable.isEditing())
    20
    TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
    20
    TableCellEditor cellEditor = cookieTable.getCellEditor(cookieTable.getEditingRow(), cookieTable.getEditingColumn());
    20
    TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn());
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    20
    TableCellEditor cellEditor = headerTable.getCellEditor(headerTable.getEditingRow(), headerTable.getEditingColumn());
    21
    cellEditor.stopCellEditing();
    21
    cellEditor.stopCellEditing();
    22
    tableModel.addNewRow();
    22
    tableModel.addNewRow();
    22
    tableModel.addNewRow();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression tableModel cannot be unified with expression tableModel , because common superclass javax.swing.table.AbstractTableModel does not declare member(s) public void addNewRow()
    22
    tableModel.addNewRow();
    23
    tableModel.fireTableDataChanged();
    23
    tableModel.fireTableDataChanged();
    23
    tableModel.fireTableDataChanged();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    23
    tableModel.fireTableDataChanged();
    24
    if (!deleteButton.isEnabled())
    24
    if (!deleteButton.isEnabled())
    25
    deleteButton.setEnabled(true);
    25
    deleteButton.setEnabled(true);
    26
    if (!saveButton.isEnabled())
    26
    if (!saveButton.isEnabled())
    27
    saveButton.setEnabled(true);
    27
    saveButton.setEnabled(true);
    28
    int rowToSelect = tableModel.getRowCount() - 1;
    28
    int rowToSelect = tableModel.getRowCount() - 1;
    28
    int rowToSelect = tableModel.getRowCount() - 1;
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    28
    int rowToSelect = tableModel.getRowCount() - 1;
    29
    cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    29
    cookieTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    29
    headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    Differences
    Expression1Expression2Difference
    cookieTableheaderTableVARIABLE_NAME_MISMATCH
    29
    headerTable.setRowSelectionInterval(rowToSelect, rowToSelect);
    30
    else if (action.equals(LOAD_COMMAND))
    30
    else if (action.equals(LOAD_COMMAND))
    31
    try
    31
    try
    31
    try
    Differences
    Expression1Expression2Difference
    """Could not load headers"LITERAL_VALUE_MISMATCH
    31
    try
    32
    final String[] _txt = {".txt"};
                                                                      
    33
    final JFileChooser chooser = FileDialoger.promptToOpenFile(_txt);
    33
    final JFileChooser chooser = FileDialoger.promptToOpenFile(_txt);
    32
    final JFileChooser chooser = FileDialoger.promptToOpenFile();
    Differences
    Expression1Expression2Difference
    FileDialoger.promptToOpenFile(_txt)FileDialoger.promptToOpenFile()ARGUMENT_NUMBER_MISMATCH
    32
    final JFileChooser chooser = FileDialoger.promptToOpenFile();
    34
    if (chooser != null)
    33
    if (chooser != null)
    35
    CookieManager manager = new CookieManager();
                                                                                                
    36
    manager.addFile(chooser.getSelectedFile().getAbsolutePath());
    36
    manager.addFile(chooser.getSelectedFile().getAbsolutePath());
    34
    headerManager.addFile(chooser.getSelectedFile().getAbsolutePath());
    Differences
    Expression1Expression2Difference
    managerheaderManagerVARIABLE_NAME_MISMATCH
    org.apache.jmeter.protocol.http.control.CookieManagerorg.apache.jmeter.protocol.http.control.HeaderManagerSUBCLASS_TYPE_MISMATCH
    Preondition Violations
    Expression manager cannot be unified with expression headerManager , because common superclass org.apache.jmeter.config.ConfigTestElement does not declare member(s) public void addFile(java.lang.String) throws java.io.IOException
    34
    headerManager.addFile(chooser.getSelectedFile().getAbsolutePath());
    37
    for (int i = 0; i < manager.getCookieCount(); i++)
                                                                                                          
    38
    addCookieToTable(manager.get(i));
    38
    addCookieToTable(manager.get(i));
    Preondition Violations
    Unmatched statement addCookieToTable(manager.get(i)); cannot be moved before or after the extracted code, because it throws exception(s) that should be caught by a try block that will be extracted
                                                                              
    39
    tableModel.fireTableDataChanged();
    39
    tableModel.fireTableDataChanged();
    35
    tableModel.fireTableDataChanged();
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    35
    tableModel.fireTableDataChanged();
    40
    if (tableModel.getRowCount() > 0)
    40
    if (tableModel.getRowCount() > 0)
    36
    if (tableModel.getRowCount() > 0)
    Differences
    Expression1Expression2Difference
    org.apache.jmeter.gui.util.PowerTableModelorg.apache.jmeter.protocol.http.gui.HeaderPanel.InnerTableModelSUBCLASS_TYPE_MISMATCH
    36
    if (tableModel.getRowCount() > 0)
    41
    deleteButton.setEnabled(true);
    37
    deleteButton.setEnabled(true);
    42
    saveButton.setEnabled(true);
    38
    saveButton.setEnabled(true);
    43
    else if (action.equals(SAVE_COMMAND))
    39
    else if (action.equals(SAVE_COMMAND))
    44
    try
    44
    try
    40
    try
    Differences
    Expression1Expression2Difference
    """Could not save headers"LITERAL_VALUE_MISMATCH
    40
    try
    45
    final JFileChooser chooser = FileDialoger.promptToSaveFile("cookies.txt");
    45
    final JFileChooser chooser = FileDialoger.promptToSaveFile("cookies.txt");
    41
    final JFileChooser chooser = FileDialoger.promptToSaveFile(null);
    Differences
    Expression1Expression2Difference
    "cookies.txt"nullTYPE_COMPATIBLE_REPLACEMENT
    41
    final JFileChooser chooser = FileDialoger.promptToSaveFile(null);
    46
    if (chooser != null)
    42
    if (chooser != null)
    47
    ((CookieManager)createTestElement()).save(chooser.getSelectedFile().getAbsolutePath());
    47
    ((CookieManager)createTestElement()).save(chooser.getSelectedFile().getAbsolutePath());
    43
    headerManager.save(chooser.getSelectedFile().getAbsolutePath());
    Differences
    Expression1Expression2Difference
    ((CookieManager)createTestElement())headerManagerTYPE_COMPATIBLE_REPLACEMENT
    43
    headerManager.save(chooser.getSelectedFile().getAbsolutePath());
    Precondition Violations (4)
    Row Violation
    1Expression tableModel cannot be unified with expression tableModel , because common superclass javax.swing.table.AbstractTableModel does not declare member(s) public void removeRow(int)
    2Expression tableModel cannot be unified with expression tableModel , because common superclass javax.swing.table.AbstractTableModel does not declare member(s) public void addNewRow()
    3Expression manager cannot be unified with expression headerManager , because common superclass org.apache.jmeter.config.ConfigTestElement does not declare member(s) public void addFile(java.lang.String) throws java.io.IOException
    4Unmatched statement addCookieToTable(manager.get(i)); cannot be moved before or after the extracted code, because it throws exception(s) that should be caught by a try block that will be extracted