if ( AFTER_STATEMENT.name.equals( modeName ) ) { return AFTER_STATEMENT; } else if ( AFTER_TRANSACTION.name.equals( modeName ) ) { return AFTER_TRANSACTION; } else if ( ON_CLOSE.name.equals( modeName ) ) { return ON_CLOSE; } throw new HibernateException( "could not determine appropriate connection release mode [" + modeName + "]" );
if ( name.equals( NONE.name ) ) { return NONE; } else if ( name.equals( FULL.name ) ) { return FULL; } else if ( name.equals( PARTIAL.name ) ) { return PARTIAL; } else { throw new StreamCorruptedException( "unrecognized value inclusion [" + name + "]" ); }
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/ConnectionReleaseMode.java File path: /hibernate-distribution-3.3.2.GA/project/core/src/main/java/org/hibernate/engine/ValueInclusion.java
Method name: ConnectionReleaseMode parse(String) Method name: Object readResolve()
Number of AST nodes: 7 Number of AST nodes: 7
1
if ( AFTER_STATEMENT.name.equals( modeName ) ) {
1
if ( name.equals( NONE.name ) ) {
2
			return AFTER_STATEMENT;
2
			return NONE;
3
		}
3
		}
4
		else if ( AFTER_TRANSACTION.name.equals( modeName ) ) {
4
		else if ( name.equals( FULL.name ) ) {
5
			return AFTER_TRANSACTION;
5
			return FULL;
6
		}
6
		}
7
		else if ( ON_CLOSE.name.equals( modeName ) ) {
7
		else if ( name.equals( PARTIAL.name ) ) {
8
			return ON_CLOSE;
8
			return PARTIAL;
9
		}
9
		}
10
		throw new Hiberna
10
		else {
11
teException( "could not determine appropriate connection release mode [" + modeName + "]" );
11
			throw new StreamCorruptedException( "unrecognized value inclusion [" + name + "]" );
12
		}
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.6
Clones locationClones are in different classes
Number of node comparisons33
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements3
    Number of unmapped statements in the first code fragment4
    Number of unmapped statements in the second code fragment4
    Time elapsed for statement mapping (ms)1.0
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    if (AFTER_STATEMENT.name.equals(modeName))
    1
    if (AFTER_STATEMENT.name.equals(modeName))
    1
    if (name.equals(NONE.name))
    Differences
    Expression1Expression2Difference
    modeNameNONE.nameTYPE_COMPATIBLE_REPLACEMENT
    AFTER_STATEMENT.namenameTYPE_COMPATIBLE_REPLACEMENT
    1
    if (name.equals(NONE.name))
                                  
    2
    return NONE;
    Preondition Violations
    Unmatched return NONE;
    2
    return NONE;
    2
    return AFTER_STATEMENT;
    2
    return AFTER_STATEMENT;
    Preondition Violations
    Unmatched return AFTER_STATEMENT;
                                                        
    3
    else if (AFTER_TRANSACTION.name.equals(modeName))
    3
    else if (AFTER_TRANSACTION.name.equals(modeName))
    3
    else if (name.equals(FULL.name))
    Differences
    Expression1Expression2Difference
    modeNameFULL.nameTYPE_COMPATIBLE_REPLACEMENT
    AFTER_TRANSACTION.namenameTYPE_COMPATIBLE_REPLACEMENT
    3
    else if (name.equals(FULL.name))
                                  
    4
    return FULL;
    Preondition Violations
    Unmatched return FULL;
    4
    return FULL;
    4
    return AFTER_TRANSACTION;
    4
    return AFTER_TRANSACTION;
    Preondition Violations
    Unmatched return AFTER_TRANSACTION;
                                                            
    5
    else if (ON_CLOSE.name.equals(modeName))
    5
    else if (ON_CLOSE.name.equals(modeName))
    5
    else if (name.equals(PARTIAL.name))
    Differences
    Expression1Expression2Difference
    modeNamePARTIAL.nameTYPE_COMPATIBLE_REPLACEMENT
    ON_CLOSE.namenameTYPE_COMPATIBLE_REPLACEMENT
    5
    else if (name.equals(PARTIAL.name))
                                        
    6
    return PARTIAL;
    Preondition Violations
    Unmatched return PARTIAL;
    6
    return PARTIAL;
    6
    return ON_CLOSE;
    6
    return ON_CLOSE;
    Preondition Violations
    Unmatched return ON_CLOSE;
                                          
            
    else
                                                                                                                                                                              
    7
    throw new StreamCorruptedException("unrecognized value inclusion [" + name + "]");
    Preondition Violations
    Unmatched throw new StreamCorruptedException("unrecognized value inclusion [" + name + "]");
    7
    throw new StreamCorruptedException("unrecognized value inclusion [" + name + "]");
    7
    throw new HibernateException("could not determine appropriate connection release mode [" + modeName + "]");
    7
    throw new HibernateException("could not determine appropriate connection release mode [" + modeName + "]");
    Preondition Violations
    Unmatched throw new HibernateException("could not determine appropriate connection release mode [" + modeName + "]");
                                                                                                                                                                                                                                
    Precondition Violations (8)
    Row Violation
    1Unmatched return NONE;
    2Unmatched return AFTER_STATEMENT;
    3Unmatched return FULL;
    4Unmatched return AFTER_TRANSACTION;
    5Unmatched return PARTIAL;
    6Unmatched return ON_CLOSE;
    7Unmatched throw new StreamCorruptedException("unrecognized value inclusion [" + name + "]");
    8Unmatched throw new HibernateException("could not determine appropriate connection release mode [" + modeName + "]");