@Override public void invokeDestroyCallbacks(final EnumListenerEvent eventType, final EntryEventImpl event, final boolean callDispatchListenerEvent, boolean notifyGateways) { // The spec for ConcurrentMap support requires that operations be mapped // to non-CM counterparts if (event.getOperation() == Operation.REMOVE) { event.setOperation(Operation.DESTROY); } event.setEventType(eventType); notifyBridgeClients(event); if (notifyGateways) { notifyGatewaySender(eventType, event); } if (callDispatchListenerEvent && !event.getIsRedestroyedEntry()) { dispatchListenerEvent(eventType, event); } }
public void basicBridgeRemove(Object key, Object expectedOldValue, Object callbackArg, ClientProxyMembershipID memberId, boolean fromClient, EntryEventImpl clientEvent) throws TimeoutException, EntryNotFoundException, CacheWriterException { if (fromClient) { // If this region is also wan-enabled, then wrap that callback arg in a // GatewayEventCallbackArgument to store the event id. if (isGatewaySenderEnabled()) { callbackArg = new GatewaySenderEventCallbackArgument(callbackArg); } } // Create an event and put the entry @Released final EntryEventImpl event = EntryEventImpl.create(this, Operation.REMOVE, key, null, callbackArg, false, memberId.getDistributedMember(), true, clientEvent.getEventId()); try { event.setContext(memberId); // we rely on exceptions to tell us that the operation didn't take // place. AbstractRegionMap performs the checks and throws the exception try { basicDestroy(event, true, expectedOldValue); } finally { clientEvent.setVersionTag(event.getVersionTag()); clientEvent.setIsRedestroyedEntry(event.getIsRedestroyedEntry()); } } finally { event.release(); } }
/** * Constructor to use when preparing to send putall data out */ public RemoveAllEntryData(EntryEventImpl event) { this.key = event.getKey(); Object oldValue = event.getRawOldValue(); if (oldValue == Token.NOT_AVAILABLE || Token.isRemoved(oldValue)) { this.oldValue = null; } else { this.oldValue = oldValue; } this.op = event.getOperation(); this.eventID = event.getEventId(); this.tailKey = event.getTailKey(); this.versionTag = event.getVersionTag(); setNotifyOnly(!event.getInvokePRCallbacks()); setCallbacksInvoked(event.callbacksInvoked()); setPossibleDuplicate(event.isPossibleDuplicate()); setInhibitDistribution(event.getInhibitDistribution()); setRedestroyedEntry(event.getIsRedestroyedEntry()); }
clientEvent.setVersionTag(event.getVersionTag()); clientEvent.isConcurrencyConflict(event.isConcurrencyConflict()); clientEvent.setIsRedestroyedEntry(event.getIsRedestroyedEntry());