@Override protected void basicDestroy(final EntryEventImpl event, final boolean cacheWrite, Object expectedOldValue) throws EntryNotFoundException, CacheWriterException, TimeoutException { super.basicDestroy(event, cacheWrite, expectedOldValue); GatewaySenderEventImpl.release(event.getRawOldValue()); } @Override
@Override protected void basicDestroy(final EntryEventImpl event, final boolean cacheWrite, Object expectedOldValue) throws EntryNotFoundException, CacheWriterException, TimeoutException { super.basicDestroy(event, cacheWrite, expectedOldValue); GatewaySenderEventImpl.release(event.getRawOldValue()); } @Override
@Override public void performRemoveAllEntry(EntryEventImpl event) { // force shared data view so that we just do the virtual op, accruing things in the bulk operation for later if(isTX()) { event.getRemoveAllOperation().addEntry(event); } else { basicDestroy(event, true, null); //getSharedDataView().destroyExistingEntry(event, true, null); } }
@SuppressWarnings("synthetic-access") public void run() { InternalDistributedMember myId = r.getDistributionManager().getDistributionManagerId(); for (int i = 0; i < removeAllDataCount; ++i) { EntryEventImpl ev = RemoveAllPRMessage.getEventFromEntry(r, myId, eventSender, i, removeAllData, false, bridgeContext, posDup, false); try { ev.setRemoveAllOperation(op); if (logger.isDebugEnabled()) { logger.debug("invoking basicDestroy with {}", ev); } try { dr.basicDestroy(ev, true, null); } catch (EntryNotFoundException ignore) { } removeAllData[i].versionTag = ev.getVersionTag(); versions.addKeyAndVersion(removeAllData[i].key, ev.getVersionTag()); } finally { ev.release(); } } } }, baseEvent.getEventId());
rgn.basicDestroy(ev, false,
public void testDestroyCreatesTombstone() throws Exception { String name = getName(); Properties props = new Properties(); props.put(DistributionConfig.LOCATORS_NAME, ""); props.put(DistributionConfig.MCAST_PORT_NAME, "0"); props.put(DistributionConfig.LOG_LEVEL_NAME, "config"); GemFireCacheImpl cache = (GemFireCacheImpl)CacheFactory.create(DistributedSystem.connect(props)); RegionFactory f = cache.createRegionFactory(RegionShortcut.REPLICATE); DistributedRegion region = (DistributedRegion)f.create(name); EntryEventImpl ev = EntryEventImpl.create(region, Operation.DESTROY, "myDestroyedKey", null, null, true, new InternalDistributedMember(InetAddress.getLocalHost(), 1234)); VersionTag tag = VersionTag.create((InternalDistributedMember)ev.getDistributedMember()); tag.setIsRemoteForTesting(); tag.setEntryVersion(2); tag.setRegionVersion(12345); tag.setVersionTimeStamp(System.currentTimeMillis()); tag.setDistributedSystemId(1); ev.setVersionTag(tag); cache.getLogger().info("destroyThread is trying to destroy the entry: " + region.getRegionEntry("myDestroyedKey")); region.basicDestroy(ev, false, null); // expectedOldValue not supported on RegionEntry entry = region.getRegionEntry("myDestroyedKey"); Assert.assertTrue(entry != null, "expected to find a region entry for myDestroyedKey"); Assert.assertTrue(entry.isTombstone(), "expected entry to be found and be a tombstone but it is " + entry); }
@Override protected void basicDestroy(EntryEventImpl event, boolean cacheWrite, Object expectedOldValue) throws EntryNotFoundException, CacheWriterException, TimeoutException { if (GemFireXDUtils.TraceDDLQueue) { SanityManager.DEBUG_PRINT(GfxdConstants.TRACE_DDLQUEUE, "GfxdDDLRegion#basicDestroy: destroying for event " + event); } super.basicDestroy(event, cacheWrite, expectedOldValue); final Object key; if ((event.isOriginRemote() || event.getOperation().isNetSearch()) && (key = event.getKey()) instanceof Long) { final RegionValue val = (RegionValue)event.getOldValue(); this.queue.lockQueue(true); try { this.queue.removeFromQueue(new QueueValue((Long)key, val)); } finally { this.queue.unlockQueue(true); } } }
@Override protected void basicDestroy(EntryEventImpl event, boolean cacheWrite, Object expectedOldValue) throws EntryNotFoundException, CacheWriterException, TimeoutException { if (GemFireXDUtils.TraceDDLQueue) { SanityManager.DEBUG_PRINT(GfxdConstants.TRACE_DDLQUEUE, "GfxdDDLRegion#basicDestroy: destroying for event " + event); } super.basicDestroy(event, cacheWrite, expectedOldValue); final Object key; if ((event.isOriginRemote() || event.getOperation().isNetSearch()) && (key = event.getKey()) instanceof Long) { final RegionValue val = (RegionValue)event.getOldValue(); this.queue.lockQueue(true); try { this.queue.removeFromQueue(new QueueValue((Long)key, val)); } finally { this.queue.unlockQueue(true); } } }
@Override protected void basicDestroy(EntryEventImpl event, boolean cacheWrite, Object expectedOldValue) throws EntryNotFoundException, CacheWriterException, TimeoutException { if (GemFireXDUtils.TraceDDLQueue) { SanityManager.DEBUG_PRINT(GfxdConstants.TRACE_DDLQUEUE, "GfxdDDLRegion#basicDestroy: destroying for event " + event); } super.basicDestroy(event, cacheWrite, expectedOldValue); final Object key; if ((event.isOriginRemote() || event.getOperation().isNetSearch()) && (key = event.getKey()) instanceof Long) { final RegionValue val = (RegionValue)event.getOldValue(); this.queue.lockQueue(true); try { this.queue.removeFromQueue(new QueueValue((Long)key, val)); } finally { this.queue.unlockQueue(true); } } }
rgn.basicDestroy(ev, false,
ev.setVersionTag(tag); cache.getLogger().info("destroyThread is trying to destroy the entry: " + region.getRegionEntry(key)); region.basicDestroy(ev, false, boolean caught = false; try { region.basicDestroy(ev, false,
rgn.basicDestroy(ev, false, null); } catch (EntryNotFoundException ignore) { this.appliedOperation = true;