/** * If the wrapper's referenceCount becomes 1 after increment, then set this * haEventWrapper and its clientUpdateMessage into the haContainer as <key, * value>. * * @param haEventWrapper * An instance of <code>HAEventWrapper</code> * @since 5.7 */ protected void putEntryConditionallyIntoHAContainer( HAEventWrapper haEventWrapper) { if (haEventWrapper.incAndGetReferenceCount() == 1) { // if (this.logger.fineEnabled()) { // this.logger.fine("Putting event in haContainer: " + haEventWrapper); // } haEventWrapper.setHAContainer(HARegionQueue.this.haContainer); this.haContainer.put(haEventWrapper, haEventWrapper .getClientUpdateMessage()); } }
if (conflatable instanceof HAEventWrapper) { HAEventWrapper wrapper = (HAEventWrapper)conflatable; if (!wrapper.getIsRefFromHAContainer()) { wrapper = (HAEventWrapper)haContainer.getKey(wrapper); if (wrapper != null && !wrapper.getPutInProgress()) { synchronized (haContainer) { if (wrapper.getReferenceCount() == 0L) { if (logger.isDebugEnabled()) { logger.debug("Removing event from haContainer: {}", wrapper); wrapper.setClientUpdateMessage(null); wrapper.setPutInProgress(false); synchronized (haContainer) { if (wrapper.getReferenceCount() == 0L) { if (logger.isDebugEnabled()) { logger.debug("Removing event from haContainer: {}", wrapper);
public static void routeSingleClientMessage(ClientUpdateMessage clientMessage, ClientProxyMembershipID clientProxyMembershiptId) { CacheClientNotifier instance = ccnSingleton; if (instance != null) { HAEventWrapper haEW = new HAEventWrapper(clientMessage); haEW.setPutInProgress(true); HashSet<ClientProxyMembershipID > singleClient = new HashSet<ClientProxyMembershipID >(); singleClient.add(clientProxyMembershiptId); instance.singletonRouteClientMessage(clientMessage, singleClient); } }
/** * IMPORTANT: <br> * The wrapper passed here must be the authentic wrapper, i.e. it must be the * one referred by the HARegion underlying this queue. <br> * Decrements wrapper's reference count by one. If the decremented ref count * is zero and put is not in progress, removes the entry from the haContainer. * * @param wrapper * @since 5.7 */ public void decAndRemoveFromHAContainer(HAEventWrapper wrapper) { if (wrapper.decAndGetReferenceCount() == 0L && !wrapper.getPutInProgress()) { synchronized (this.haContainer) { if (wrapper.getReferenceCount() == 0L) { if (logger.isDebugEnabled()) { logger.debug("Removing event from {}: {}", this.region.getFullPath(), wrapper.getEventId()); } HARegionQueue.this.haContainer.remove(wrapper); } } } }
HAEventWrapper haEventWrapper = (HAEventWrapper)actualVal; if (haEventWrapper.getClientUpdateMessage() == null) { return false; if (entry != null) { original = (HAEventWrapper)entry.getKey(); original.incAndGetReferenceCount(); haEventWrapper.incAndGetReferenceCount(); haEventWrapper.setHAContainer(haContainer); haContainer.put(haEventWrapper, haEventWrapper .getClientUpdateMessage()); haEventWrapper.setClientUpdateMessage(null); haEventWrapper.setIsRefFromHAContainer(true); HARegionQueue.addClientCQsAndInterestList(entry, haEventWrapper, haContainer, owner.getName()); haEventWrapper.setClientUpdateMessage(null); newValue = CachedDeserializableFactory.create(original, ((CachedDeserializable)newValue).getSizeInBytes());
HAEventWrapper haEventWrapper = (HAEventWrapper)event; if (this.isQueueInitialized()) { if (haEventWrapper.getIsRefFromHAContainer()) { putEntryConditionallyIntoHAContainer(haEventWrapper); entryFound = true; ((HAEventWrapper)entry.getKey()).incAndGetReferenceCount(); if (!haEventWrapper.getPutInProgress()) { haEventWrapper.setClientUpdateMessage(null); haEventWrapper.setIsRefFromHAContainer(true);
public Object get(Object key) { ClientUpdateMessageImpl cum = (ClientUpdateMessageImpl)map.get(key); if (cum != null) { cum.setEventIdentifier(((HAEventWrapper)key).getEventId()); if (cum.hasCqs()) { cum.setClientCqs(((HAEventWrapper)key).getClientCqs()); } } return cum; }
/** * Puts the GII'd entry into the ha region, if it was GII'd along with its * ClientUpdateMessageImpl instance. * * @param val * @throws InterruptedException * @since 5.7 */ protected void putInQueue(Object val) throws InterruptedException { if (val instanceof HAEventWrapper && ((HAEventWrapper)val) .getClientUpdateMessage() == null) { if (logger.isDebugEnabled()) { logger.debug("HARegionQueue.putGIIDataInRegion(): key={} was removed at sender side, so not putting it into the ha queue.", ((HAEventWrapper)val).getKeyToConflate()); } } else { this.put(val); } }
public static void addClientCQsAndInterestList(Map.Entry entry, HAEventWrapper haEventWrapper, Map haContainer, String regionName) { ClientProxyMembershipID proxyID = ((HAContainerWrapper)haContainer) .getProxyID(regionName); if (haEventWrapper.getClientCqs() != null) { CqNameToOp clientCQ = haEventWrapper.getClientCqs().get(proxyID); if (clientCQ != null) { ((ClientUpdateMessageImpl)entry.getValue()).addClientCqs(proxyID, clientCQ); } } // if (haEventWrapper.getPutInProgress()) { // ((HAEventWrapper)entry.getKey()).setPutInProgress(true); // } // This is a remote HAEventWrapper. // Add new Interested client lists. ClientUpdateMessageImpl clientMsg = (ClientUpdateMessageImpl)haEventWrapper .getClientUpdateMessage(); if (clientMsg.isClientInterestedInUpdates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, true); } else if (clientMsg.isClientInterestedInInvalidates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, false); } }
private static void verifyNullCUMReference(Integer port) { Region r = cache.getRegion("/" + BridgeServerImpl.generateNameForClientMsgsRegion(port.intValue())); assertNotNull(r); Object[] arr = r.keySet().toArray(); for (int i = 0; i < arr.length; i++) { assertNull(((HAEventWrapper)arr[i]).getClientUpdateMessage()); } }
@Override public String toString() { if (this.clientUpdateMessage != null) { return "HAEventWrapper[refCount=" + getReferenceCount() + "; msg=" + this.clientUpdateMessage+"]"; } else { return "HAEventWrapper[region=" + this.regionName + "; key=" + this.keyOfInterest + "; refCount=" + getReferenceCount() + "; inContainer=" + this.isRefFromHAContainer + "; putInProgress=" + this.putInProgress + "; event=" + this.eventIdentifier + ((this.clientUpdateMessage == null) ? "; no message" : ";with message") + ((this.clientUpdateMessage == null) ? "" : ("; op=" + this.clientUpdateMessage.getOperation())) + ((this.clientUpdateMessage == null) ? "" : ("; version=" + this.clientUpdateMessage.getVersionTag())) + "]"; } }
/** * This implementation considers only the EventID of * <code>HAEventWrapper</code> for the equality test. It allows an instance * of {@link EventID} to be tested for equality. * * @param other * The instance of HAEventWrapper or EventID to be tested for * equality. * * @return boolean true if <code>this</code> object's event id matches with * that of other. */ @Override public boolean equals(Object other) { if (other == null || !(other instanceof HAEventWrapper)) { return false; } return this == other || this.getEventId().equals(((HAEventWrapper)other).getEventId()); }
Object[] valueAndIsObject = new Object[2]; try { Object data = haContainer.get(new HAEventWrapper(event));
HAEventWrapper haEventWrapper = (HAEventWrapper)actualVal; if (haEventWrapper.getClientUpdateMessage() == null) { return false; if (entry != null) { original = (HAEventWrapper)entry.getKey(); original.incAndGetReferenceCount(); haEventWrapper.incAndGetReferenceCount(); haEventWrapper.setHAContainer(haContainer); haContainer.put(haEventWrapper, haEventWrapper .getClientUpdateMessage()); haEventWrapper.setClientUpdateMessage(null); haEventWrapper.setIsRefFromHAContainer(true); HARegionQueue.addClientCQsAndInterestList(entry, haEventWrapper, haContainer, owner.getName()); haEventWrapper.setClientUpdateMessage(null); if (isCD) { newValue = CachedDeserializableFactory.create(original,
HAEventWrapper haEventWrapper = (HAEventWrapper)event; if (this.isQueueInitialized()) { if (haEventWrapper.getIsRefFromHAContainer()) { putEntryConditionallyIntoHAContainer(haEventWrapper); entryFound = true; ((HAEventWrapper)entry.getKey()).incAndGetReferenceCount(); if (!haEventWrapper.getPutInProgress()) { haEventWrapper.setClientUpdateMessage(null); haEventWrapper.setIsRefFromHAContainer(true);
/** * IMPORTANT: <br> * The wrapper passed here must be the authentic wrapper, i.e. it must be the * one referred by the HARegion underlying this queue. <br> * Decrements wrapper's reference count by one. If the decremented ref count * is zero and put is not in progress, removes the entry from the haContainer. * * @param wrapper * @since 5.7 */ public void decAndRemoveFromHAContainer(HAEventWrapper wrapper) { if (wrapper.decAndGetReferenceCount() == 0L && !wrapper.getPutInProgress()) { synchronized (this.haContainer) { if (wrapper.getReferenceCount() == 0L) { if (this.logger.fineEnabled()) { this.logger.fine("Removing event from " + this.region.getFullPath() + ": " + wrapper.getEventId()); } HARegionQueue.this.haContainer.remove(wrapper); } } } }
public Object get(Object key) { ClientUpdateMessageImpl cum = (ClientUpdateMessageImpl)map.get(key); if (cum != null) { cum.setEventIdentifier(((HAEventWrapper)key).getEventId()); if (cum.hasCqs()) { cum.setClientCqs(((HAEventWrapper)key).getClientCqs()); } } return cum; }
/** * Puts the GII'd entry into the ha region, if it was GII'd along with its * ClientUpdateMessageImpl instance. * * @param val * @throws InterruptedException * @since 5.7 */ protected void putInQueue(Object val) throws InterruptedException { if (val instanceof HAEventWrapper && ((HAEventWrapper)val) .getClientUpdateMessage() == null) { if (this.logger.fineEnabled()) { this.logger .fine("HARegionQueue.putGIIDataInRegion(): key=" + ((HAEventWrapper)val).getKeyToConflate() + " was removed at sender side, so not putting it into the ha queue."); } } else { this.put(val); } }
public static void addClientCQsAndInterestList(Map.Entry entry, HAEventWrapper haEventWrapper, Map haContainer, String regionName) { ClientProxyMembershipID proxyID = ((HAContainerWrapper)haContainer) .getProxyID(regionName); if (haEventWrapper.getClientCqs() != null) { CqNameToOp clientCQ = haEventWrapper.getClientCqs().get(proxyID); if (clientCQ != null) { ((ClientUpdateMessageImpl)entry.getValue()).addClientCqs(proxyID, clientCQ); } } // if (haEventWrapper.getPutInProgress()) { // ((HAEventWrapper)entry.getKey()).setPutInProgress(true); // } // This is a remote HAEventWrapper. // Add new Interested client lists. ClientUpdateMessageImpl clientMsg = (ClientUpdateMessageImpl)haEventWrapper .getClientUpdateMessage(); if (clientMsg.isClientInterestedInUpdates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, true); } else if (clientMsg.isClientInterestedInInvalidates(proxyID)) { ((ClientUpdateMessageImpl)entry.getValue()).addClientInterestList( proxyID, false); } }
clientMessage = ((HAEventWrapper)conflatable).getClientUpdateMessage(); } else { clientMessage = (ClientUpdateMessage)conflatable;