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