@@ -20617,20 +20617,17 @@ else if (continuation != null)
2061720617
2061820618 /**
2061920619 * Raise an event (if necessary) signalling that the specified entry is
20620- * being changed, and complete the specified continuation.
20621- *
20622- * Called on a worker or service thread.
20620+ * being changed, and complete the specified continuation.
20621+ * <p>
20622+ * Called on a worker or service thread.
2062320623 */
2062420624 public void onEntryChanging(Storage.BinaryEntry binEntry, com.oracle.coherence.common.base.Continuation continuation)
2062520625 {
20626- // import com.tangosol.net.events.partition.cache.EntryEvent$Type as com.tangosol.net.events.partition.cache.EntryEvent.Type;
20627- // import com.tangosol.net.events.internal.StorageDispatcher as com.tangosol.net.events.internal.StorageDispatcher;
20628- // import java.util.Collections;
20629-
20630- com.tangosol.net.events.partition.cache.EntryEvent.Type eventType = null;
20631- com.tangosol.net.events.internal.StorageDispatcher dispatcher = getStorageDispatcher(binEntry.getStorage());
20626+ com.tangosol.net.events.partition.cache.EntryEvent.Type eventType = null;
20627+ com.tangosol.net.events.internal.StorageDispatcher dispatcher = getStorageDispatcher(binEntry.getStorage());
20628+
2063220629 if (dispatcher != null &&
20633- (( binEntry.isValueRemoved() || ReadWriteBackingMap.BIN_ERASE_PENDING.equals(binEntry.getBinaryValue() ))
20630+ (binEntry.isValueRemoved() || ReadWriteBackingMap.BIN_ERASE_PENDING.equals(binEntry.getBinaryValue())
2063420631 ? dispatcher.isSubscribed(eventType = com.tangosol.net.events.partition.cache.EntryEvent.Type.REMOVING)
2063520632 : dispatcher.isSubscribed(com.tangosol.net.events.partition.cache.EntryEvent.Type.INSERTING) || dispatcher.isSubscribed(com.tangosol.net.events.partition.cache.EntryEvent.Type.UPDATING)))
2063620633 {
@@ -38696,35 +38693,24 @@ public void onUncontend(Object oContender, com.tangosol.util.SegmentedConcurrent
3869638693
3869738694 /**
3869838695 * Process the specified event that was observed from the backing-map.
38699- * See //dev/main/doc/coherence-core/BMEHandling.txt
38700- *
38701- * @param evtHolder the holder for the observed BM event to be
38702- * processed
38703- *
38704- * @return true iff the event's entry status does not need to be added
38705- * to the OOB set
38696+ * See //dev/main/doc/coherence-core/BMEHandling.txt
38697+ *
38698+ * @param evtHolder the holder for the observed BM event to be
38699+ * processed
38700+ *
38701+ * @return true iff the event's entry status does not need to be added
38702+ * to the OOB set
3870638703 */
3870738704 protected boolean processEvent(com.tangosol.internal.util.BMEventFabric.EventHolder evtHolder)
3870838705 {
38709- // import com.tangosol.internal.util.BMEventFabric;
38710- // import com.tangosol.internal.util.BMEventFabric$EventHolder as com.tangosol.internal.util.BMEventFabric.EventHolder;
38711- // import com.tangosol.internal.util.BMEventFabric$EventQueue as com.tangosol.internal.util.BMEventFabric.EventQueue;
38712- // import com.tangosol.net.cache.CacheEvent;
38713- // import com.tangosol.net.events.partition.TransactionEvent$Type as com.tangosol.net.events.partition.TransactionEvent.Type;
38714- // import com.tangosol.net.events.partition.UnsolicitedCommitEvent$Type as com.tangosol.net.events.partition.UnsolicitedCommitEvent.Type;
38715- // import com.tangosol.util.Base;
38716- // import com.tangosol.util.Binary;
38717- // import com.tangosol.util.ExternalizableHelper as com.tangosol.util.ExternalizableHelper;
38718- // import com.tangosol.util.MapEvent as com.tangosol.util.MapEvent;
38719-
38720- PartitionedCache service = getService();
38721- com.tangosol.util.MapEvent event = evtHolder.getEvent();
38722- Storage.EntryStatus status = (Storage.EntryStatus) evtHolder.getStatus();
38723- Storage storage = status.getStorage();
38724- Binary binKey = (Binary) status.getKey();
38725- boolean fOOBEvent = false;
38726- Storage.BinaryEntry entry = null;
38727- boolean fSynthetic = false;
38706+ PartitionedCache service = getService();
38707+ com.tangosol.util.MapEvent event = evtHolder.getEvent();
38708+ Storage.EntryStatus status = (Storage.EntryStatus) evtHolder.getStatus();
38709+ Storage storage = status.getStorage();
38710+ Binary binKey = status.getKey();
38711+ boolean fOOBEvent = false;
38712+ Storage.BinaryEntry entry = null;
38713+ boolean fSynthetic = false;
3872838714
3872938715 // attempt to lock the entry (thus make the entry managed) prior to
3873038716 // updating the index & partitioned key index
@@ -38738,11 +38724,11 @@ else if (!service.isPrimaryOwner(status.getPartition()))
3873838724 {
3873938725 // the only scenario in which this is possible is an OOB event that landed
3874038726 // on the fabric however was processed after the associated partition had
38741- // sucessfully transferred out to another member; do not process the event
38727+ // successfully transferred out to another member; do not process the event
3874238728 // and return control suggesting it is not OOB thus will not be published
3874338729 return true;
3874438730 }
38745- // else this is a troubling case; process the com.tangosol.util.MapEvent updating anciliary
38731+ // else this is a troubling case; process the com.tangosol.util.MapEvent updating ancillary
3874638732 // data structures
3874738733 }
3874838734
@@ -38789,6 +38775,9 @@ else if (!service.isPrimaryOwner(status.getPartition()))
3878938775 // no need to send events for updates that remove DECO_STORE
3879038776 fEvents = false;
3879138777 fIncptrs = false;
38778+
38779+ // COH-15096: don't generate the UEM events either
38780+ status.setSuppressEvents(true);
3879238781 }
3879338782
3879438783 // no need update user indices for decoration updates
0 commit comments