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.4
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)8.1
    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 does not match with type org.hibernate.test.propertyref.basic.Person
    • 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
    Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    • 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
    Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    • 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
    Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    • 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
    Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    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
    Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    • 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 (25)
    Row Violation
    1Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    2Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    3Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    4Type 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()
    5Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    6Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    7Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    8Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    9Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    10Type 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()
    11Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    12Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    13Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    14Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    15Expression ((Person)l.get(1)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    16Type 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()
    17Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    18Expression (Person)l.get(1) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    19Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person
    20Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    21Expression ((Person)l.get(0)).getAddress() cannot be parameterized, because it has dependencies to/from statements that will be extracted
    22Type 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()
    23Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    24Expression (Person)l.get(0) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    25Type org.hibernate.test.cuk.Person does not match with type org.hibernate.test.propertyref.basic.Person