while ( entries.hasNext() ) { Map.Entry entry = (Map.Entry) entries.next(); if (entry.getValue() instanceof ArrayList) { ArrayList list = (ArrayList) entry.getValue(); entry.setValue( list.toArray( new String[ list.size() ] ) ); } }
while ( iter.hasNext() ) { Map.Entry element = ( Map.Entry ) iter.next(); String path = ( String ) element.getKey(); if ( path.startsWith( keyPrefix ) ) { result.put( path.substring( keyPrefix.length() ), element.getValue() ); } }
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/cfg/ResultSetMappingBinder.java File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/loader/custom/sql/SQLQueryReturnProcessor.java
Method name: java.util.Map bindPropertyResults(String, Element, PersistentClass, Mappings) Method name: Map filter(Map)
Number of AST nodes: 5 Number of AST nodes: 5
1
while ( entries.hasNext() ) {
1
while ( iter.hasNext() ) {
2
			Map.Entry entry = (Map.Entry) entries.next();
2
			Map.Entry element = ( Map.Entry ) iter.next();
3
			if (entry.getValue() instanceof ArrayList) {
3
			
4
				ArrayList list = (ArrayList) entry.getValue();
5
				entry.setValue( list.toArray( new String[ list.size() ] 
4
String path = ( String ) element.getKey();
5
			if ( path.startsWith( keyPrefix ) ) {
6
) );
6
				result.put( path.substring( keyPrefix.length() ), element.getValue() );
7
			}
7
			}
8
		}
8
		}
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.2
Clones locationClones are in different classes
Number of node comparisons12
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements3
    Number of unmapped statements in the first code fragment2
    Number of unmapped statements in the second code fragment2
    Time elapsed for statement mapping (ms)3.2
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    71
    while (entries.hasNext())
    71
    while (entries.hasNext())
    4
    while (iter.hasNext())
    Differences
    Expression1Expression2Difference
    entriesiterVARIABLE_NAME_MISMATCH
    4
    while (iter.hasNext())
    72
    Map.Entry entry = (Map.Entry)entries.next();
    72
    Map.Entry entry = (Map.Entry)entries.next();
    5
    Map.Entry element = (Map.Entry)iter.next();
    Differences
    Expression1Expression2Difference
    entryelementVARIABLE_NAME_MISMATCH
    entriesiterVARIABLE_NAME_MISMATCH
    5
    Map.Entry element = (Map.Entry)iter.next();
                                                                                    
    6
    String path = (String)element.getKey();
    Preondition Violations
    Unmatched statement String path=(String)element.getKey(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6
    String path = (String)element.getKey();
    73
    if (entry.getValue() instanceof ArrayList)
    73
    if (entry.getValue() instanceof ArrayList)
    7
    if (path.startsWith(keyPrefix))
    Differences
    Expression1Expression2Difference
    entry.getValue() instanceof ArrayListpath.startsWith(keyPrefix)TYPE_COMPATIBLE_REPLACEMENT
    Preondition Violations
    Expression entry.getValue() instanceof ArrayList cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression path.startsWith(keyPrefix) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7
    if (path.startsWith(keyPrefix))
                                                                                                                                              
    8
    result.put(path.substring(keyPrefix.length()), element.getValue());
    Preondition Violations
    Unmatched statement result.put(path.substring(keyPrefix.length()),element.getValue()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    8
    result.put(path.substring(keyPrefix.length()), element.getValue());
    74
    ArrayList list = (ArrayList)entry.getValue();
    74
    ArrayList list = (ArrayList)entry.getValue();
    Preondition Violations
    Unmatched statement ArrayList list=(ArrayList)entry.getValue(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                  
    75
    entry.setValue(list.toArray(new String[list.size()]));
    75
    entry.setValue(list.toArray(new String[list.size()]));
    Preondition Violations
    Unmatched statement entry.setValue(list.toArray(new String[list.size()])); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
                                                                                                                        
    Precondition Violations (6)
    Row Violation
    1Unmatched statement String path=(String)element.getKey(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    2Expression entry.getValue() instanceof ArrayList cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression path.startsWith(keyPrefix) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Unmatched statement result.put(path.substring(keyPrefix.length()),element.getValue()); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    5Unmatched statement ArrayList list=(ArrayList)entry.getValue(); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted
    6Unmatched statement entry.setValue(list.toArray(new String[list.size()])); cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted