public Region.Entry getEntry(Object key) { return this.region.getEntry(key); }
@Override public Object getKey(Object key) { Map.Entry entry = ((Region) map).getEntry(key); if (entry != null) { try { return entry.getKey(); } // Is this catch block needed? catch (EntryDestroyedException ede) { return null; } } return null; }
protected static Object getLocalValue(final Region region, final Object key) { Region.Entry entry = region.getEntry(key); if (entry != null) { try { // Handle race conditions with concurrent destroy ops return entry.getValue(); } catch (EntryDestroyedException e) { return null; } } else { return null; } }
@Override public void run2() throws CacheException { Region<Object, Object> region = getRootRegion().getSubregion(name); Region.Entry entry = region.getEntry(key); assertThat(entry).isNotNull(); assertThat(entry.getValue()).isEqualTo(newValue); } });
@Override public void run2() throws CacheException { Region<Object, Object> region = getRootRegion().getSubregion(name); Region.Entry entry = region.getEntry(key); assertThat(entry.getValue()).isEqualTo(value); } });
@Override public Entry getEntry(Object key) { try { preOp(); return this.realRegion.getEntry(key); } finally { postOp(); } }
@Override public void run2() { Region rgn1 = getRootRegion().getSubregion(rgnName); CacheTransactionManager txMgr2 = getCache().getCacheTransactionManager(); MyTransactionListener<String, String> tl = firstTransactionListenerFrom(txMgr2); assertThat(rgn1.containsKey("key")).isTrue(); assertThat(rgn1.containsValueForKey("key")).isTrue(); assertThat(rgn1.getEntry("key").getValue()).isEqualTo("value1"); tl.assertCounts(2, 0, 0, 0); // nothing happened remotely } });
protected PageEntry getEntry(final Region region, final Object key) { final EntrySnapshot entry = (EntrySnapshot) region.getEntry(key); if (entry == null) { return null; } final Object value = entry.getRegionEntry().getValue(null); if (value == null || Token.isInvalidOrRemoved(value)) { return null; } return new PageEntry(key, value); }
@Override public void run2() throws CacheException { final Region<Object, Object> region = getRootRegion().getSubregion(name); await("never saw expire of " + key) .until(() -> region.getEntry(key) == null); assertThat(destroyListener.waitForInvocation(555)).isTrue(); assertThat(((DestroyListener) destroyListener).eventIsExpiration).isTrue(); } });
private static void verifyUpdatesOnRegion2() { try { Cache cache = new ClientServerMiscDUnitTestBase().getCache(); final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2); assertNotNull(r2); await() .until(() -> server_k1.equals(r2.getEntry(k1).getValue())); await() .until(() -> server_k2.equals(r2.getEntry(k2).getValue())); // assertIndexDetailsEquals(server_k2, r2.getEntry(k2).getValue()); } catch (Exception ex) { fail("failed while verifyUpdatesOnRegion2()" + ex); } }
public static void put() { Cache cache = new ClientServerMiscDUnitTestBase().getCache(); Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1); Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2); assertNotNull(r1); assertNotNull(r2); r1.put(k1, server_k1); r1.put(k2, server_k2); r2.put(k1, server_k1); r2.put(k2, server_k2); assertEquals(r1.getEntry(k1).getValue(), server_k1); assertEquals(r1.getEntry(k2).getValue(), server_k2); assertEquals(r2.getEntry(k1).getValue(), server_k1); assertEquals(r2.getEntry(k2).getValue(), server_k2); }
private boolean isEntryDestroyed(Region.Entry re) { if (re.isLocal()) { return re.isDestroyed(); } else { Region r = re.getRegion(); Object key = re.getKey(); Region.Entry freshRE = r.getEntry(key); if (freshRE == null) { return true; } return freshRE.isDestroyed(); } }
private Object fetchEntryValue(Region.Entry re) { if (re.isLocal()) { return re.getValue(); } else { Region r = re.getRegion(); Object key = re.getKey(); Region.Entry freshRE = r.getEntry(key); if (freshRE == null) { return null; // or should we throw an exception? } return freshRE.getValue(); } }
/** * Tests a region entry's user attribute */ @Test public void testEntryUserAttribute() throws CacheException { String name = this.getUniqueName(); String key = "KEY"; String attr = "USER_ATTRIBUTE"; Region region = createRegion(name); region.create(key, null); Region.Entry entry = region.getEntry(key); entry.setUserAttribute(attr); assertEquals(attr, entry.getUserAttribute()); entry = region.getEntry(key); assertEquals(attr, entry.getUserAttribute()); }
@Override public Object getEntry(Object key) { Region.Entry entry = ((Region) map).getEntry(key); if (entry != null) { ClientUpdateMessageImpl msg = (ClientUpdateMessageImpl) entry.getValue(); msg.setEventIdentifier(((HAEventWrapper) key).getEventId()); if (msg.hasCqs()) { msg.setClientCqs(((HAEventWrapper) key).getClientCqs()); } } return entry; }
private static void verifyInvalidatesOnBothRegions() { try { Cache cache = new ClientServerMiscDUnitTestBase().getCache(); final Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1); final Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2); assertNotNull(r1); assertNotNull(r2); await() .until(() -> r1.getEntry(k1).getValue() == null); await() .until(() -> r1.getEntry(k2).getValue() == null); await() .until(() -> r2.getEntry(k1).getValue() == null); await() .until(() -> r2.getEntry(k2).getValue() == null); } catch (Exception ex) { fail("failed while verifyInvalidatesOnBothRegions()" + ex); } }
public static void populateCache() { Cache cache = new ClientServerMiscDUnitTestBase().getCache(); Region r1 = cache.getRegion(Region.SEPARATOR + REGION_NAME1); Region r2 = cache.getRegion(Region.SEPARATOR + REGION_NAME2); assertNotNull(r1); assertNotNull(r2); if (!r1.containsKey(k1)) r1.create(k1, k1); if (!r1.containsKey(k2)) r1.create(k2, k2); if (!r2.containsKey(k1)) r2.create(k1, k1); if (!r2.containsKey(k2)) r2.create(k2, k2); assertEquals(r1.getEntry(k1).getValue(), k1); assertEquals(r1.getEntry(k2).getValue(), k2); assertEquals(r2.getEntry(k1).getValue(), k1); assertEquals(r2.getEntry(k2).getValue(), k2); }
/** * Tests that {@link Region#put} on a previously non-existent region entry creates it. */ @Test public void testPutNonExistentEntry() throws CacheException { String name = this.getUniqueName(); Region region = createRegion(name); Object key = name; assertNull(region.getEntry(key)); Object value = new Integer(42); region.put(key, value); Region.Entry entry = region.getEntry(key); assertNotNull(entry); assertEquals(key, entry.getKey()); assertEquals(value, entry.getValue()); assertEquals(value, region.get(key)); try { Collection values = region.values(); assertEquals(1, values.size()); assertEquals(value, values.iterator().next()); } catch (UnsupportedOperationException uoe) { org.apache.geode.test.dunit.LogWriterUtils.getLogWriter() .info("Region.values() reported UnsupportedOperation"); } }
private static void doLocalGetsP(final int num, final boolean checkNVals) { assertTrue(num <= KEYS.length); String[] vals = VALUES; if (checkNVals) { vals = NVALUES; } final Region region = getCache().getRegion(REGION_NAME); assertNotNull(region); for (int index = 0; index < num; ++index) { final String key = KEYS[index]; final String expectedVal = vals[index]; await() .until(() -> expectedVal.equals(getLocalValue(region, key))); } for (int index = 0; index < num; ++index) { Region.Entry entry = region.getEntry(KEYS[index]); assertNotNull(entry); assertEquals(vals[index], entry.getValue()); } }
/** * Tests invalidating a region entry */ @Test public void testInvalidateEntry() throws CacheException { String name = this.getUniqueName(); Object key = "KEY"; Object value = "VALUE"; Region region = createRegion(name); region.put(key, value); int beforeInvalidates = ((org.apache.geode.internal.cache.GemFireCacheImpl) getCache()) .getCachePerfStats().getInvalidates(); Region.Entry entry = region.getEntry(key); region.invalidate(key); if (entry.isLocal()) { assertNull(entry.getValue()); } assertNull(region.get(key)); int afterInvalidates = ((org.apache.geode.internal.cache.GemFireCacheImpl) getCache()) .getCachePerfStats().getInvalidates(); assertEquals("Invalidate CachePerfStats incorrect", beforeInvalidates + 1, afterInvalidates); }