HashMap<String, String> caseSensitiveTableNames = new HashMap<String, String>(); CaseInsensitiveString caseInsensitiveTableName = new CaseInsensitiveString(simpleTableName); String caseSensitiveTableName = _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName); caseSensitiveTableNames.put(caseSensitiveTableName, caseSensitiveTableName); //////////////////////////////////////////////////////////////////////// // Reload all matching table types for(Iterator<String> i=caseSensitiveTableNames.keySet().iterator(); i.hasNext();) { String buf = i.next(); TableInfo ti = new TableInfo(null, null, buf, null, null, _dmd); reload(ti, fireSchemaInfoUpdate); }
HashMap<String, String> caseSensitiveProcNames = new HashMap<String, String>(); CaseInsensitiveString caseInsensitiveProcName = new CaseInsensitiveString(simpleProcName); String caseSensitiveProcName = _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName); caseSensitiveProcNames.put(caseSensitiveProcName, caseSensitiveProcName); //////////////////////////////////////////////////////////////////////// // Reload all matching procedure types for(Iterator<String> i=caseSensitiveProcNames.keySet().iterator(); i.hasNext();) { String buf = i.next(); ProcedureInfo pi = new ProcedureInfo(null, null, buf, null, DatabaseMetaData.procedureResultUnknown, _dmd); reload(pi, fireSchemaInfoUpdate); }
Clone fragments detected by clone detection tool
File path: /sql12/app/src/net/sourceforge/squirrel_sql/client/session/schemainfo/SchemaInfo.java File path: /sql12/app/src/net/sourceforge/squirrel_sql/client/session/schemainfo/SchemaInfo.java
Method name: void refershCacheForSimpleTableName(String, boolean) Method name: void refreshCacheForSimpleProcedureName(String, boolean)
Number of AST nodes: 8 Number of AST nodes: 8
1
HashMap<String, String> caseSensitiveTableNames = new HashMap<String, String>();
1
HashMap<String, String> caseSensitiveProcNames = new HashMap<String, String>();
2
      CaseInsensitiveString caseInsensitiveTableName = new CaseInsensitiveString(simpleTableName);
2
      CaseInsensitiveString caseInsensitiveProcName = new CaseInsensitiveString(simpleProcName);
3
      String caseSensitiveTableName = _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName);
3
      String caseSensitiveProcName = _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName);
4
      caseSensitiveTableNames.put(caseSensitiveTableName, caseSensitiveTableName);
4
      caseSensitiveProcNames.put(caseSensitiveProcName, caseSensitiveProcName);
5
      ////////////////////////////////////////////////////////////////////////
5
      ////////////////////////////////////////////////////////////////////////
6
      // Reload  all matching table types
6
      // Reload  all matching procedure types
7
      for(Iterator<String> i=caseSensitiveTableNames.keySet().iterator(); i.hasNext();)
7
      for(Iterator<String> i=caseSensitiveProcNames.keySet().iterator(); i.hasNext();)
8
      {
8
      {
9
         String buf = i.next();
9
         String buf = i.next();
10
         TableInfo ti = new TableInfo(null, null, buf, null, null, _dmd);
10
         ProcedureInfo pi = new ProcedureInfo(null, null, buf, null, DatabaseMetaData.procedureResultUnknown, _dmd);
11
         reload(ti, fireSchemaInfoUpdate);
11
         reload(pi, fireSchemaInfoUpdate);
12
      }
12
      }
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 comparisons23
  1. {Refactorable}
    Mapping Summary
    Number of mapped statements7
    Number of unmapped statements in the first code fragment1
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)28.4
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    1
    HashMap<String, String> caseSensitiveTableNames = new HashMap<String, String>();
    1
    HashMap<String, String> caseSensitiveTableNames = new HashMap<String, String>();
    1
    HashMap<String, String> caseSensitiveProcNames = new HashMap<String, String>();
    Differences
    Expression1Expression2Difference
    caseSensitiveTableNamescaseSensitiveProcNamesVARIABLE_NAME_MISMATCH
    1
    HashMap<String, String> caseSensitiveProcNames = new HashMap<String, String>();
    2
    CaseInsensitiveString caseInsensitiveTableName = new CaseInsensitiveString(simpleTableName);
    2
    CaseInsensitiveString caseInsensitiveTableName = new CaseInsensitiveString(simpleTableName);
    2
    CaseInsensitiveString caseInsensitiveProcName = new CaseInsensitiveString(simpleProcName);
    Differences
    Expression1Expression2Difference
    caseInsensitiveTableNamecaseInsensitiveProcNameVARIABLE_NAME_MISMATCH
    simpleTableNamesimpleProcNameVARIABLE_NAME_MISMATCH
    2
    CaseInsensitiveString caseInsensitiveProcName = new CaseInsensitiveString(simpleProcName);
    3
    String caseSensitiveTableName = _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName);
    3
    String caseSensitiveTableName = _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName);
    3
    String caseSensitiveProcName = _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName);
    Differences
    Expression1Expression2Difference
    caseSensitiveTableNamecaseSensitiveProcNameVARIABLE_NAME_MISMATCH
    caseInsensitiveTableNamecaseInsensitiveProcNameVARIABLE_NAME_MISMATCH
    getremoveMETHOD_INVOCATION_NAME_MISMATCH
    getTableNamesForReadOnlygetProcedureNamesForReadOnlyMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3
    String caseSensitiveProcName = _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName);
    4
    caseSensitiveTableNames.put(caseSensitiveTableName, caseSensitiveTableName);
    4
    caseSensitiveTableNames.put(caseSensitiveTableName, caseSensitiveTableName);
    4
    caseSensitiveProcNames.put(caseSensitiveProcName, caseSensitiveProcName);
    Differences
    Expression1Expression2Difference
    caseSensitiveTableNamecaseSensitiveProcNameVARIABLE_NAME_MISMATCH
    caseSensitiveTableNamecaseSensitiveProcNameVARIABLE_NAME_MISMATCH
    caseSensitiveTableNamescaseSensitiveProcNamesVARIABLE_NAME_MISMATCH
    4
    caseSensitiveProcNames.put(caseSensitiveProcName, caseSensitiveProcName);
    5
    for (Iterator<String> i = caseSensitiveTableNames.keySet().iterator(); i.hasNext(); )
    5
    for (Iterator<String> i = caseSensitiveTableNames.keySet().iterator(); i.hasNext(); )
    5
    for (Iterator<String> i = caseSensitiveProcNames.keySet().iterator(); i.hasNext(); )
    Differences
    Expression1Expression2Difference
    caseSensitiveTableNamescaseSensitiveProcNamesVARIABLE_NAME_MISMATCH
    5
    for (Iterator<String> i = caseSensitiveProcNames.keySet().iterator(); i.hasNext(); )
    6
    String buf = i.next();
    6
    String buf = i.next();
                                                                                                                                                                                                                  
    7
    ProcedureInfo pi = new ProcedureInfo(null, null, buf, null, DatabaseMetaData.procedureResultUnknown, _dmd);
    Preondition Violations
    Unmatched statement ProcedureInfo pi=new ProcedureInfo(null,null,buf,null,DatabaseMetaData.procedureResultUnknown,_dmd); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    7
    ProcedureInfo pi = new ProcedureInfo(null, null, buf, null, DatabaseMetaData.procedureResultUnknown, _dmd);
    7
    TableInfo ti = new TableInfo(null, null, buf, null, null, _dmd);
    7
    TableInfo ti = new TableInfo(null, null, buf, null, null, _dmd);
    Preondition Violations
    Unmatched statement TableInfo ti=new TableInfo(null,null,buf,null,null,_dmd); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                                            
    8
    reload(ti, fireSchemaInfoUpdate);
    8
    reload(ti, fireSchemaInfoUpdate);
    8
    reload(pi, fireSchemaInfoUpdate);
    Differences
    Expression1Expression2Difference
    tipiVARIABLE_NAME_MISMATCH
    net.sourceforge.squirrel_sql.fw.sql.TableInfonet.sourceforge.squirrel_sql.fw.sql.ProcedureInfoSUBCLASS_TYPE_MISMATCH
    8
    reload(pi, fireSchemaInfoUpdate);
    Precondition Violations (4)
    Row Violation
    1Expression _schemaInfoCache.getTableNamesForReadOnly().get(caseInsensitiveTableName) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression _schemaInfoCache.getProcedureNamesForReadOnly().remove(caseInsensitiveProcName) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Unmatched statement ProcedureInfo pi=new ProcedureInfo(null,null,buf,null,DatabaseMetaData.procedureResultUnknown,_dmd); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    4Unmatched statement TableInfo ti=new TableInfo(null,null,buf,null,null,_dmd); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted