String[] columnNames = null; try { final ISQLConnection conn = _session.getSQLConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";"); ResultSetMetaData md = rs.getMetaData(); columnNames = new String[md.getColumnCount()]; for (int i = 0; i < columnNames.length; i++) { columnNames[i] = md.getColumnLabel(i + 1); } } catch (SQLException ex) { _session.showErrorMessage(ex); } return columnNames;
String[] dataTypes = null; try { final ISQLConnection conn = _session.getSQLConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";"); ResultSetMetaData md = rs.getMetaData(); dataTypes = new String[md.getColumnCount()]; for (int i = 0; i < dataTypes.length; i++) { dataTypes[i] = md.getColumnTypeName(i + 1); } } catch (SQLException ex) { _session.showErrorMessage(ex); } return dataTypes;
Clone fragments detected by clone detection tool
File path: /sql12/plugins/mysql/src/net/sourceforge/squirrel_sql/plugins/mysql/util/DBUtils.java File path: /sql12/plugins/mysql/src/net/sourceforge/squirrel_sql/plugins/mysql/util/DBUtils.java
Method name: String[] getColumnNames() Method name: String[] getFieldDataTypes()
Number of AST nodes: 10 Number of AST nodes: 10
1
String[] columnNames = null;
1
String[] dataTypes = null;
2
		try
2
		try
3
		{
3
		{
4
			final ISQLConnection conn = _session.getSQLConnection();
4
			final ISQLConnection conn = _session.getSQLConnection();
5
			Statement stmt = conn.createStatement();
5
			Statement stmt = conn.createStatement();
6
			ResultSet rs =
6
			ResultSet rs =
7
				stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";");
7
				stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";");
8
			ResultSetMetaData md = rs.getMetaData();
8
			ResultSetMetaData md = rs.getMetaData();
9
			columnNames = new String[md.getColumnCount()];
9
			dataTypes = new String[md.getColumnCount()];
10
			for (int i = 0; i < columnNames.length; i++)
10
			for (int i = 0; i < dataTypes.length; i++)
11
			{
11
			{
12
				columnNames[i] = md.getColumnLabel(i + 1);
12
				dataTypes[i] = md.getColumnTypeName(i + 1);
13
			}
13
			}
14
		}
14
		}
15
		catch (SQLException ex)
15
		catch (SQLException ex)
16
		{
16
		{
17
			_session.showErrorMessage(ex);
17
			_session.showErrorMessage(ex);
18
		}
18
		}
19
		return columnNames;
19
		return dataTypes;
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.3
Clones locationClones are declared in the same class
Number of node comparisons44
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements10
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)4.9
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    String[] columnNames = null;
    1
    String[] columnNames = null;
    1
    String[] dataTypes = null;
    Differences
    Expression1Expression2Difference
    columnNamesdataTypesVARIABLE_NAME_MISMATCH
    1
    String[] dataTypes = null;
    2
    try
    2
    try
    3
    final ISQLConnection conn = _session.getSQLConnection();
    3
    final ISQLConnection conn = _session.getSQLConnection();
    4
    Statement stmt = conn.createStatement();
    4
    Statement stmt = conn.createStatement();
    5
    ResultSet rs = stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";");
    5
    ResultSet rs = stmt.executeQuery("SELECT * FROM " + getTableInfo() + ";");
    6
    ResultSetMetaData md = rs.getMetaData();
    6
    ResultSetMetaData md = rs.getMetaData();
    7
    columnNames = new String[md.getColumnCount()];
    7
    columnNames = new String[md.getColumnCount()];
    7
    dataTypes = new String[md.getColumnCount()];
    Differences
    Expression1Expression2Difference
    columnNamesdataTypesVARIABLE_NAME_MISMATCH
    7
    dataTypes = new String[md.getColumnCount()];
    8
    for (int i = 0; i < columnNames.length; i++)
    8
    for (int i = 0; i < columnNames.length; i++)
    8
    for (int i = 0; i < dataTypes.length; i++)
    Differences
    Expression1Expression2Difference
    columnNamesdataTypesVARIABLE_NAME_MISMATCH
    8
    for (int i = 0; i < dataTypes.length; i++)
    9
    columnNames[i] = md.getColumnLabel(i + 1);
    9
    columnNames[i] = md.getColumnLabel(i + 1);
    9
    dataTypes[i] = md.getColumnTypeName(i + 1);
    Differences
    Expression1Expression2Difference
    columnNamesdataTypesVARIABLE_NAME_MISMATCH
    getColumnLabelgetColumnTypeNameMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression md.getColumnLabel(i + 1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression md.getColumnTypeName(i + 1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9
    dataTypes[i] = md.getColumnTypeName(i + 1);
    10
    return columnNames;
    10
    return columnNames;
    10
    return dataTypes;
    Differences
    Expression1Expression2Difference
    columnNamesdataTypesVARIABLE_NAME_MISMATCH
    10
    return dataTypes;
    Precondition Violations (2)
    Row Violation
    1Expression md.getColumnLabel(i + 1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression md.getColumnTypeName(i + 1) cannot be parameterized, because it has dependencies to/from statements that will be extracted