/** Returns true if the ExpirationAction is a distributed action. */ protected boolean isDistributedAction() { ExpirationAction action = getAction(); return action != null && (action.isInvalidate() || action.isDestroy()); }
public static void validatePRRegionExpirationAttributes(ExpirationAttributes expAtts) { if (expAtts.getTimeout() > 0) { ExpirationAction expAction = expAtts.getAction(); if (expAction.isInvalidate() || expAction.isLocalInvalidate()) { throw new IllegalStateException( "ExpirationAction INVALIDATE or LOCAL_INVALIDATE for region is not supported for Partitioned Region."); } else if (expAction.isDestroy() || expAction.isLocalDestroy()) { throw new IllegalStateException( "ExpirationAction DESTROY or LOCAL_DESTROY for region is not supported for Partitioned Region."); } } }
@Override public boolean isPending() { RegionEntry re = this.re; if (re == null) { return false; } if (re.isDestroyedOrRemoved()) { return false; } ExpirationAction action = getAction(); if (action == null) { return false; } if ((action.isInvalidate() || action.isLocalInvalidate()) && re.isInvalid()) { return false; } return true; }
protected boolean expire(ExpirationAction action, boolean isPending) throws CacheException { if (action.isInvalidate()) return invalidate(); if (action.isDestroy()) return destroy(isPending); if (action.isLocalInvalidate()) return localInvalidate(); if (action.isLocalDestroy()) return localDestroy(); throw new InternalGemFireError( String.format("unrecognized expiration action: %s", action)); }
if (getLocalRegion().getScope().isGlobal() && (action.isDestroy() || action.isInvalidate())) { Lock lock = getLocalRegion().getDistributedLock(getCheckedRegionEntry().getKey()); lock.lock();
ExpirationAction expirationAction = getEntryExpirationAction(); if (done && !getBucketAdvisor().isPrimary() && expirationAction != null && expirationAction.isInvalidate()) { synchronized (pendingSecondaryExpires) { pendingSecondaryExpires.remove(event.getKey());