if ( ( (Person) l.get(0) ).getName().equals("Max") ) { assertNull( ( (Person) l.get(0) ).getAddress() ); assertNotNull( ( (Person) l.get(1) ).getAddress() ); } else { assertNull( ( (Person) l.get(1) ).getAddress() ); assertNotNull( ( (Person) l.get(0) ).getAddress() ); }
if ( ( (Person) l.get(0) ).getName().equals("Max") ) { assertNull( ( (Person) l.get(0) ).getAddress() ); assertNotNull( ( (Person) l.get(1) ).getAddress() ); } else { assertNull( ( (Person) l.get(1) ).getAddress() ); assertNotNull( ( (Person) l.get(0) ).getAddress() ); }
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/cuk/CompositePropertyRefTest.java File path: /hibernate-distribution-3.3.2.GA/project/testsuite/src/test/java/org/hibernate/test/propertyref/basic/PropertyRefTest.java
Method name: void testOneToOnePropertyRef() Method name: void testOneToOnePropertyRef()
Number of AST nodes: 5 Number of AST nodes: 5
1
if ( ( (Person) l.get(0) ).getName().equals("Max") ) {
1
if ( ( (Person) l.get(0) ).getName().equals("Max") ) {
2
			assertNull( ( (Person) l.get(0) ).getAddress() );
2
			assertNull( ( (Person) l.get(0) ).getAddress() );
3
			assertNotNull( ( (Person) l.get(1) ).getAddress() );
3
			assertNotNull( ( (Person) l.get(1) ).getAddress() );
4
		}
4
		}
5
		else {
5
		else {
6
			assertNull( ( (Person) l.get(1) ).getAddress() );
6
			assertNull( ( (Person) l.get(1) ).getAddress() );
7
			assertNotNull( ( (Person) l.get(0) ).getAddress() );
7
			assertNotNull( ( (Person) l.get(0) ).getAddress() );
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.3
Clones locationClones are in different classes having the same super class
Number of node comparisons25
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements5
    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.8
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    38
    if (((Person)l.get(0)).getName().equals("Max"))
    38
    if (((Person)l.get(0)).getName().equals("Max"))
    38
    if (((Person)l.get(0)).getName().equals("Max"))
    Differences
    Expression1Expression2Difference
    org.hibernate.test.cuk.Personorg.hibernate.test.propertyref.basic.PersonVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)
    • Make classes org.hibernate.test.cuk.Person and org.hibernate.test.propertyref.basic.Person extend a common superclass
    38
    if (((Person)l.get(0)).getName().equals("Max"))
    39
    assertNull(((Person)l.get(0)).getAddress());
    39
    assertNull(((Person)l.get(0)).getAddress());
    39
    assertNull(((Person)l.get(0)).getAddress());
    Differences
    Expression1Expression2Difference
    org.hibernate.test.cuk.Addressorg.hibernate.test.propertyref.basic.AddressVARIABLE_TYPE_MISMATCH
    org.hibernate.test.cuk.Personorg.hibernate.test.propertyref.basic.PersonVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.test.cuk.Address of variable ((Person)l.get(0)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(0)).getAddress()
    • Make classes org.hibernate.test.cuk.Address and org.hibernate.test.propertyref.basic.Address extend a common superclass
    Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)
    • Make classes org.hibernate.test.cuk.Person and org.hibernate.test.propertyref.basic.Person extend a common superclass
    39
    assertNull(((Person)l.get(0)).getAddress());
    40
    assertNotNull(((Person)l.get(1)).getAddress());
    40
    assertNotNull(((Person)l.get(1)).getAddress());
    40
    assertNotNull(((Person)l.get(1)).getAddress());
    Differences
    Expression1Expression2Difference
    org.hibernate.test.cuk.Addressorg.hibernate.test.propertyref.basic.AddressVARIABLE_TYPE_MISMATCH
    org.hibernate.test.cuk.Personorg.hibernate.test.propertyref.basic.PersonVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.test.cuk.Address of variable ((Person)l.get(1)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(1)).getAddress()
    • Make classes org.hibernate.test.cuk.Address and org.hibernate.test.propertyref.basic.Address extend a common superclass
    Type org.hibernate.test.cuk.Person of variable (Person)l.get(1) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(1)
    • Make classes org.hibernate.test.cuk.Person and org.hibernate.test.propertyref.basic.Person extend a common superclass
    40
    assertNotNull(((Person)l.get(1)).getAddress());
    else
    else
    41
    assertNull(((Person)l.get(1)).getAddress());
    41
    assertNull(((Person)l.get(1)).getAddress());
    41
    assertNull(((Person)l.get(1)).getAddress());
    Differences
    Expression1Expression2Difference
    org.hibernate.test.cuk.Addressorg.hibernate.test.propertyref.basic.AddressVARIABLE_TYPE_MISMATCH
    org.hibernate.test.cuk.Personorg.hibernate.test.propertyref.basic.PersonVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.test.cuk.Address of variable ((Person)l.get(1)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(1)).getAddress()
    • Make classes org.hibernate.test.cuk.Address and org.hibernate.test.propertyref.basic.Address extend a common superclass
    Type org.hibernate.test.cuk.Person of variable (Person)l.get(1) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(1)
    • Make classes org.hibernate.test.cuk.Person and org.hibernate.test.propertyref.basic.Person extend a common superclass
    41
    assertNull(((Person)l.get(1)).getAddress());
    42
    assertNotNull(((Person)l.get(0)).getAddress());
    42
    assertNotNull(((Person)l.get(0)).getAddress());
    42
    assertNotNull(((Person)l.get(0)).getAddress());
    Differences
    Expression1Expression2Difference
    org.hibernate.test.cuk.Addressorg.hibernate.test.propertyref.basic.AddressVARIABLE_TYPE_MISMATCH
    org.hibernate.test.cuk.Personorg.hibernate.test.propertyref.basic.PersonVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.test.cuk.Address of variable ((Person)l.get(0)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(0)).getAddress()
    • Make classes org.hibernate.test.cuk.Address and org.hibernate.test.propertyref.basic.Address extend a common superclass
    Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)
    • Make classes org.hibernate.test.cuk.Person and org.hibernate.test.propertyref.basic.Person extend a common superclass
    42
    assertNotNull(((Person)l.get(0)).getAddress());
    Precondition Violations (9)
    Row Violation
    1Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)
    2Type org.hibernate.test.cuk.Address of variable ((Person)l.get(0)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(0)).getAddress()
    3Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)
    4Type org.hibernate.test.cuk.Address of variable ((Person)l.get(1)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(1)).getAddress()
    5Type org.hibernate.test.cuk.Person of variable (Person)l.get(1) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(1)
    6Type org.hibernate.test.cuk.Address of variable ((Person)l.get(1)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(1)).getAddress()
    7Type org.hibernate.test.cuk.Person of variable (Person)l.get(1) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(1)
    8Type org.hibernate.test.cuk.Address of variable ((Person)l.get(0)).getAddress() does not match with type org.hibernate.test.propertyref.basic.Address of variable ((Person)l.get(0)).getAddress()
    9Type org.hibernate.test.cuk.Person of variable (Person)l.get(0) does not match with type org.hibernate.test.propertyref.basic.Person of variable (Person)l.get(0)