public void postPutAllFireEvents(DistributedPutAllOperation putallOp, VersionedObjectList successfulPuts) { if (!this.dataPolicy.withStorage() && this.concurrencyChecksEnabled && putallOp.getBaseEvent().isBridgeEvent()) { // if there is no local storage we need to transfer version information // to the successfulPuts list for transmission back to the client successfulPuts.clear(); putallOp.fillVersionedObjectList(successfulPuts); } Set successfulKeys = new HashSet(successfulPuts.size()); for (Object key: successfulPuts.getKeys()) { successfulKeys.add(key); } for (Iterator it=putallOp.eventIterator(); it.hasNext(); ) { EntryEventImpl event = (EntryEventImpl)it.next(); if (successfulKeys.contains(event.getKey())) { EnumListenerEvent op = event.getOperation().isCreate() ? EnumListenerEvent.AFTER_CREATE : EnumListenerEvent.AFTER_UPDATE; invokePutCallbacks(op, event, !event.callbacksInvoked() && !event.isPossibleDuplicate(), false /* We must notify gateways inside RegionEntry lock, NOT here, to preserve the order of events sent by gateways for same key*/); } } }
@Override public void postPutAll(DistributedPutAllOperation putallOp, VersionedObjectList successfulPuts,LocalRegion region) { if (!region.dataPolicy.withStorage() && region.concurrencyChecksEnabled && putallOp.getBaseEvent().isBridgeEvent()) { // if there is no local storage we need to transfer version information // to the successfulPuts list for transmission back to the client successfulPuts.clear(); putallOp.fillVersionedObjectList(successfulPuts); } region.postPutAllSend(putallOp, successfulPuts); region.postPutAllFireEvents(putallOp, successfulPuts); }
/** * {@inheritDoc} */ @Override public void postPutAll(DistributedPutAllOperation putallOp, VersionedObjectList successfulPuts, LocalRegion region) { if (!region.dataPolicy.withStorage() && region.concurrencyChecksEnabled && putallOp.getBaseEvent().isBridgeEvent()) { // if there is no local storage we need to transfer version information // to the successfulPuts list for transmission back to the client successfulPuts.clear(); putallOp.fillVersionedObjectList(successfulPuts); } region.postPutAllSend(putallOp, null, successfulPuts); region.postPutAllFireEvents(putallOp, successfulPuts); }
public void postPutAllFireEvents(DistributedPutAllOperation putallOp, VersionedObjectList successfulPuts) { if (!this.dataPolicy.withStorage() && this.concurrencyChecksEnabled && putallOp.getBaseEvent().isBridgeEvent()) { // if there is no local storage we need to transfer version information // to the successfulPuts list for transmission back to the client successfulPuts.clear(); putallOp.fillVersionedObjectList(successfulPuts); } OpenHashSet<Object> successfulKeys = new OpenHashSet<>(successfulPuts.size()); for (Object key: successfulPuts.getKeys()) { successfulKeys.add(key); } for (Iterator it=putallOp.eventIterator(); it.hasNext(); ) { EntryEventImpl event = (EntryEventImpl)it.next(); if (successfulKeys.contains(event.getKey())) { EnumListenerEvent op = event.getOperation().isCreate() ? EnumListenerEvent.AFTER_CREATE : EnumListenerEvent.AFTER_UPDATE; invokePutCallbacks(op, event, !event.callbacksInvoked() && !event.isPossibleDuplicate(), false /* We must notify gateways inside RegionEntry lock, NOT here, to preserve the order of events sent by gateways for same key*/); } } }