final String KEY = KEY_BASE + testCount++; Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX); Node regionRoot = localCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isResident()); if (isUsingOptimisticLocking()) { assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } regionRoot = remoteCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isResident()); if (isUsingOptimisticLocking()) { assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis())); assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis())); localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis())); remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); // Wait for async propagation sleep(250); if (isUsingOptimisticLocking()) { regionRoot = localCache.getRoot().getChild(regionFqn); assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); regionRoot = remoteCache.getRoot().getChild(regionFqn); assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } if (evict) localAccessStrategy.evictAll(); else localAccessStrategy.removeAll(); // This should re-establish the region root node in the optimistic case assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis())); regionRoot = localCache.getRoot().getChild(regionFqn); if (isUsingOptimisticLocking()) { assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); } else { assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid()); } // Re-establishing the region root on the local node doesn't // propagate it to other nodes. Do a get on the remote node to re-establish // This only adds a node in the case of optimistic locking assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); regionRoot = remoteCache.getRoot().getChild(regionFqn); if (isUsingOptimisticLocking()) { assertFalse(regionRoot == null); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); // Not invalidation, so we didn't insert a child above assertEquals(0, getValidChildrenCount(regionRoot)); } else { assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid()); } // Test whether the get above messes up the optimistic version remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); // Revalidate the region root regionRoot = remoteCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); // Region root should have 1 child -- the one we added above assertEquals(1, getValidChildrenCount(regionRoot)); // Wait for async propagation of the putFromLoad sleep(250); assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis())); assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
final String KEY = KEY_BASE + testCount++; Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX); Node regionRoot = localCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isResident()); if (isUsingOptimisticLocking()) { assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } regionRoot = remoteCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isResident()); if (isUsingOptimisticLocking()) { assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis())); assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis())); localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis())); // Wait for async propagation sleep(250); remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); // Wait for async propagation sleep(250); if (isUsingOptimisticLocking()) { regionRoot = localCache.getRoot().getChild(regionFqn); assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); regionRoot = remoteCache.getRoot().getChild(regionFqn); assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass()); } if (evict) localAccessStrategy.evictAll(); else localAccessStrategy.removeAll(); // This should re-establish the region root node in the optimistic case assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis())); regionRoot = localCache.getRoot().getChild(regionFqn); if (isUsingOptimisticLocking()) { assertFalse(regionRoot == null); assertEquals(0, getValidChildrenCount(regionRoot)); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); } else { assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid()); } // Re-establishing the region root on the local node doesn't // propagate it to other nodes. Do a get on the remote node to re-establish assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); regionRoot = remoteCache.getRoot().getChild(regionFqn); if (isUsingOptimisticLocking()) { assertFalse(regionRoot == null); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); // Not invalidation, so we didn't insert a child above assertEquals(0, getValidChildrenCount(regionRoot)); } else { assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid()); } // Test whether the get above messes up the optimistic version remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1)); assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis())); // Revalidate the region root regionRoot = remoteCache.getRoot().getChild(regionFqn); assertFalse(regionRoot == null); assertTrue(regionRoot.isValid()); assertTrue(regionRoot.isResident()); // Region root should have 1 child -- the one we added above assertEquals(1, getValidChildrenCount(regionRoot)); // Wait for async propagation sleep(250); assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis())); assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
Clone fragments detected by clone detection tool
File path: /hibernate-distribution-3.3.2.GA/project/cache-jbosscache2/src/test/java/org/hibernate/test/cache/jbc2/collection/AbstractCollectionRegionAccessStrategyTestCase.java File path: /hibernate-distribution-3.3.2.GA/project/cache-jbosscache2/src/test/java/org/hibernate/test/cache/jbc2/entity/AbstractEntityRegionAccessStrategyTestCase.java
Method name: void evictOrRemoveAllTest(boolean) Method name: void evictOrRemoveAllTest(boolean)
Number of AST nodes: 55 Number of AST nodes: 56
1
final String KEY = KEY_BASE + testCount++;
1
final String KEY = KEY_BASE + testCount++;
2
        
2
        
3
        Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX);
3
        Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX);
4
        
4
        
5
        Node regionRoot = localCache.getRoot().getChild(regionFqn);
5
        Node regionRoot = localCache.getRoot().getChild(regionFqn);
6
        assertFalse(regionRoot == null);
6
        assertFalse(regionRoot == null);
7
        assertEquals(0, getValidChildrenCount(regionRoot));
7
        assertEquals(0, getValidChildrenCount(regionRoot));
8
        assertTrue(regionRoot.isResident());
8
        assertTrue(regionRoot.isResident());
9
        
9
        
10
        if (isUsingOptimisticLocking()) {
10
        if (isUsingOptimisticLocking()) {
11
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
11
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
12
        }
12
        }
13
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
13
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
14
        assertFalse(regionRoot == null);
14
        assertFalse(regionRoot == null);
15
        assertEquals(0, getValidChildrenCount(regionRoot));
15
        assertEquals(0, getValidChildrenCount(regionRoot));
16
        assertTrue(regionRoot.isResident());
16
        assertTrue(regionRoot.isResident());
17
        
17
        
18
        if (isUsingOptimisticLocking()) {
18
        if (isUsingOptimisticLocking()) {
19
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
19
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
20
        }
20
        }
21
        
21
        
22
        assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
22
        assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
23
        assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
23
        assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
24
        
24
        
25
        localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
25
        localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
26
        assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
26
        assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
27
        
28
        // Wait for async propagation
29
        sleep(250);
30
        
27
        remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
31
        remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
28
        assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
32
        assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
29
        
33
        
30
        // Wait for async propagation
34
        // Wait for async propagation
31
        sleep(250);
35
        sleep(250);
32
        
36
        
33
        if (isUsingOptimisticLocking()) {
37
        if (isUsingOptimisticLocking()) {
34
            regionRoot = localCache.getRoot().getChild(regionFqn);
38
            regionRoot = localCache.getRoot().getChild(regionFqn);
35
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
39
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
36
            regionRoot = remoteCache.getRoot().getChild(regionFqn);
40
            regionRoot = remoteCache.getRoot().getChild(regionFqn);
37
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
41
            assertEquals(NonLockingDataVersion.class, ((NodeSPI) regionRoot).getVersion().getClass());
38
        }
42
        }
39
        
43
        
40
        if (evict)
44
        if (evict)
41
            localAccessStrategy.evictAll();
45
            localAccessStrategy.evictAll();
42
        else
46
        else
43
            localAccessStrategy.removeAll();
47
            localAccessStrategy.removeAll();
44
        
48
        
45
        // This should re-establish the region root node in the optimistic case
49
        // This should re-establish the region root node in the optimistic case
46
        assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
50
        assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
47
        
51
        
48
        regionRoot = localCache.getRoot().getChild(regionFqn);
52
        regionRoot = localCache.getRoot().getChild(regionFqn);
49
        if (isUsingOptimisticLocking()) {
53
        if (isUsingOptimisticLocking()) {
50
            assertFalse(regionRoot == null);
54
            assertFalse(regionRoot == null);
51
            assertEquals(0, getValidChildrenCount(regionRoot));
55
            assertEquals(0, getValidChildrenCount(regionRoot));
52
            assertTrue(regionRoot.isValid());
56
            assertTrue(regionRoot.isValid());
53
            assertTrue(regionRoot.isResident());
57
            assertTrue(regionRoot.isResident());
54
        }
58
        }
55
        else {
59
        else {
56
            assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
60
            assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
57
        }
61
        }
58
        // Re-establishing the region root on the local node doesn't 
62
        // Re-establishing the region root on the local node doesn't 
59
        // propagate it to other nodes. Do a get on the remote node to re-establish
63
        // propagate it to other nodes. Do a get on the remote node to re-establish
60
        // This only adds a node in the case of optimistic locking
61
        assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
64
        assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
62
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
65
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
63
        if (isUsingOptimisticLocking()) {
66
        if (isUsingOptimisticLocking()) {
64
           assertFalse(regionRoot == null);
67
           assertFalse(regionRoot == null);
65
           assertTrue(regionRoot.isValid());
68
           assertTrue(regionRoot.isValid());
66
           assertTrue(regionRoot.isResident());
69
           assertTrue(regionRoot.isResident());
67
           // Not invalidation, so we didn't insert a child above
70
           // Not invalidation, so we didn't insert a child above
68
           assertEquals(0, getValidChildrenCount(regionRoot));
71
           assertEquals(0, getValidChildrenCount(regionRoot));
69
        }        
72
       }        
70
        else {
73
       else {
71
            assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
74
          assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
72
        }
75
       }
73
        
76
        
74
        // Test whether the get above messes up the optimistic version
77
        // Test whether the get above messes up the optimistic version
75
        remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
78
        remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
76
        assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
79
        assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
77
        
80
        
78
        // Revalidate the region root
81
        // Revalidate the region root
79
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
82
        regionRoot = remoteCache.getRoot().getChild(regionFqn);
80
        assertFalse(regionRoot == null);
83
        assertFalse(regionRoot == null);
81
        assertTrue(regionRoot.isValid());
84
        assertTrue(regionRoot.isValid());
82
        assertTrue(regionRoot.isResident());
85
        assertTrue(regionRoot.isResident());
83
        // Region root should have 1 child -- the one we added above
86
        // Region root should have 1 child -- the one we added above
84
        assertEquals(1, getValidChildrenCount(regionRoot));
87
        assertEquals(1, getValidChildrenCount(regionRoot));
85
        
88
        
86
        // Wait for async propagation of the putFromLoad
89
        // Wait for async propagation
87
        sleep(250);
90
        sleep(250);
88
        
91
        
89
        assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
92
        assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
90
        assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
93
        assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
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)2.3
Clones locationClones are in different classes having the same super class
Number of node comparisons588
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements55
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment1
    Time elapsed for statement mapping (ms)117.2
    Clone typeType 3
    Mapped Statements
    ID Statement ID Statement
    1
    final String KEY = KEY_BASE + testCount++;
    1
    final String KEY = KEY_BASE + testCount++;
    2
    Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX);
    2
    Fqn regionFqn = getRegionFqn(REGION_NAME, REGION_PREFIX);
    3
    Node regionRoot = localCache.getRoot().getChild(regionFqn);
    3
    Node regionRoot = localCache.getRoot().getChild(regionFqn);
    4
    assertFalse(regionRoot == null);
    4
    assertFalse(regionRoot == null);
    5
    assertEquals(0, getValidChildrenCount(regionRoot));
    5
    assertEquals(0, getValidChildrenCount(regionRoot));
    6
    assertTrue(regionRoot.isResident());
    6
    assertTrue(regionRoot.isResident());
    7
    if (isUsingOptimisticLocking())
    7
    if (isUsingOptimisticLocking())
    8
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    8
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    9
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    9
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    10
    assertFalse(regionRoot == null);
    10
    assertFalse(regionRoot == null);
    11
    assertEquals(0, getValidChildrenCount(regionRoot));
    11
    assertEquals(0, getValidChildrenCount(regionRoot));
    12
    assertTrue(regionRoot.isResident());
    12
    assertTrue(regionRoot.isResident());
    13
    if (isUsingOptimisticLocking())
    13
    if (isUsingOptimisticLocking())
    14
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    14
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    15
    assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
    15
    assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
    15
    assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    15
    assertNull("local is clean", localAccessStrategy.get(KEY, System.currentTimeMillis()));
    16
    assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    16
    assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    16
    assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    16
    assertNull("remote is clean", remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    17
    localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    17
    localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    17
    localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    17
    localAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    18
    assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
    18
    assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
    18
    assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    18
    assertEquals(VALUE1, localAccessStrategy.get(KEY, System.currentTimeMillis()));
                                  
    19
    sleep(250);
    19
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    19
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    20
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    20
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    20
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    20
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    21
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    21
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    21
    sleep(250);
    22
    sleep(250);
    22
    if (isUsingOptimisticLocking())
    23
    if (isUsingOptimisticLocking())
    23
    regionRoot = localCache.getRoot().getChild(regionFqn);
    24
    regionRoot = localCache.getRoot().getChild(regionFqn);
    24
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    25
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    25
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    26
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    26
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    27
    assertEquals(NonLockingDataVersion.class, ((NodeSPI)regionRoot).getVersion().getClass());
    27
    if (evict)
    28
    if (evict)
    28
    localAccessStrategy.evictAll();
    28
    localAccessStrategy.evictAll();
    29
    localAccessStrategy.evictAll();
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    29
    localAccessStrategy.evictAll();
    else
    else
    29
    localAccessStrategy.removeAll();
    29
    localAccessStrategy.removeAll();
    30
    localAccessStrategy.removeAll();
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    30
    localAccessStrategy.removeAll();
    30
    assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
    30
    assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
    31
    assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    31
    assertNull(localAccessStrategy.get(KEY, System.currentTimeMillis()));
    31
    regionRoot = localCache.getRoot().getChild(regionFqn);
    32
    regionRoot = localCache.getRoot().getChild(regionFqn);
    32
    if (isUsingOptimisticLocking())
    33
    if (isUsingOptimisticLocking())
    33
    assertFalse(regionRoot == null);
    34
    assertFalse(regionRoot == null);
    34
    assertEquals(0, getValidChildrenCount(regionRoot));
    35
    assertEquals(0, getValidChildrenCount(regionRoot));
    35
    assertTrue(regionRoot.isValid());
    36
    assertTrue(regionRoot.isValid());
    36
    assertTrue(regionRoot.isResident());
    37
    assertTrue(regionRoot.isResident());
    else
    else
    37
    assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
    38
    assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
    38
    assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    38
    assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    39
    assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    39
    assertEquals(null, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    39
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    40
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    40
    if (isUsingOptimisticLocking())
    41
    if (isUsingOptimisticLocking())
    41
    assertFalse(regionRoot == null);
    42
    assertFalse(regionRoot == null);
    42
    assertTrue(regionRoot.isValid());
    43
    assertTrue(regionRoot.isValid());
    43
    assertTrue(regionRoot.isResident());
    44
    assertTrue(regionRoot.isResident());
    44
    assertEquals(0, getValidChildrenCount(regionRoot));
    45
    assertEquals(0, getValidChildrenCount(regionRoot));
    else
    else
    45
    assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
    46
    assertTrue("region root is removed", regionRoot == null || !regionRoot.isValid());
    46
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    46
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    47
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    47
    remoteAccessStrategy.putFromLoad(KEY, VALUE1, System.currentTimeMillis(), new Integer(1));
    47
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    47
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    48
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    48
    assertEquals(VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    48
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    49
    regionRoot = remoteCache.getRoot().getChild(regionFqn);
    49
    assertFalse(regionRoot == null);
    50
    assertFalse(regionRoot == null);
    50
    assertTrue(regionRoot.isValid());
    51
    assertTrue(regionRoot.isValid());
    51
    assertTrue(regionRoot.isResident());
    52
    assertTrue(regionRoot.isResident());
    52
    assertEquals(1, getValidChildrenCount(regionRoot));
    53
    assertEquals(1, getValidChildrenCount(regionRoot));
    53
    sleep(250);
    54
    sleep(250);
    54
    assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
    54
    assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
    55
    assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    55
    assertEquals("local is correct", (isUsingInvalidation() ? null : VALUE1), localAccessStrategy.get(KEY, System.currentTimeMillis()));
    55
    assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    55
    assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    56
    assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Differences
    Expression1Expression2Difference
    org.hibernate.cache.access.CollectionRegionAccessStrategyorg.hibernate.cache.access.EntityRegionAccessStrategyVARIABLE_TYPE_MISMATCH
    Preondition Violations
    Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    • Make classes org.hibernate.cache.access.CollectionRegionAccessStrategy and org.hibernate.cache.access.EntityRegionAccessStrategy extend a common superclass
    56
    assertEquals("remote is correct", VALUE1, remoteAccessStrategy.get(KEY, System.currentTimeMillis()));
    Precondition Violations (14)
    Row Violation
    1Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    2Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    3Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    4Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    5Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    6Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    7Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    8Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    9Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    10Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    11Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    12Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy
    13Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable localAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable localAccessStrategy
    14Type org.hibernate.cache.access.CollectionRegionAccessStrategy of variable remoteAccessStrategy does not match with type org.hibernate.cache.access.EntityRegionAccessStrategy of variable remoteAccessStrategy