protected void initLease() throws CommitFailedException { if (hasLease) { return; } NodeState root = store.getRoot(); NodeState async = root.getChildNode(ASYNC); if(isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); this.lease = now + 2 * leaseTimeOut; long beforeLease = async.getLong(leaseName); if (beforeLease > now) { throw newConcurrentUpdateException(); } NodeBuilder builder = root.builder(); builder.child(ASYNC).setProperty(leaseName, lease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, beforeLease, name); } else { lease = null; // remove stale lease info if needed if (async.hasProperty(leaseName)) { NodeBuilder builder = root.builder(); builder.child(ASYNC).removeProperty(leaseName); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, null, name); } } hasLease = true; }
protected void initLease() throws CommitFailedException { if (hasLease) { return; } NodeState root = store.getRoot(); NodeState async = root.getChildNode(ASYNC); if(isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); this.lease = now + 2 * leaseTimeOut; long beforeLease = async.getLong(leaseName); if (beforeLease > now) { throw newConcurrentUpdateException(); } NodeBuilder builder = root.builder(); builder.child(ASYNC).setProperty(leaseName, lease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, beforeLease, name); } else { lease = null; // remove stale lease info if needed if (async.hasProperty(leaseName)) { NodeBuilder builder = root.builder(); builder.child(ASYNC).removeProperty(leaseName); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, null, name); } } hasLease = true; }
protected void initLease() throws CommitFailedException { if (hasLease) { return; } NodeState root = store.getRoot(); NodeState async = root.getChildNode(ASYNC); if(isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); this.lease = now + 2 * leaseTimeOut; long beforeLease = async.getLong(leaseName); if (beforeLease > now) { throw newConcurrentUpdateException(); } NodeBuilder builder = root.builder(); builder.child(ASYNC).setProperty(leaseName, lease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, beforeLease, name); } else { lease = null; // remove stale lease info if needed if (async.hasProperty(leaseName)) { NodeBuilder builder = root.builder(); builder.child(ASYNC).removeProperty(leaseName); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, null, name); } } hasLease = true; }
@Override public void traversedNode(PathSource pathSource) throws CommitFailedException{ checkIfStopped(); if (indexStats.incTraversal() % LEASE_CHECK_INTERVAL == 0 && isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); if (now + leaseTimeOut > lease) { long newLease = now + 2 * leaseTimeOut; NodeBuilder builder = store.getRoot().builder(); builder.child(ASYNC).setProperty(leaseName, newLease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, lease, name); lease = newLease; } } }
@Override public void traversedNode(PathSource pathSource) throws CommitFailedException{ checkIfStopped(); if (indexStats.incTraversal() % LEASE_CHECK_INTERVAL == 0 && isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); if (now + leaseTimeOut > lease) { long newLease = now + 2 * leaseTimeOut; NodeBuilder builder = store.getRoot().builder(); builder.child(ASYNC).setProperty(leaseName, newLease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, lease, name); lease = newLease; } } }
@Override public void traversedNode(PathSource pathSource) throws CommitFailedException{ checkIfStopped(); if (indexStats.incTraversal() % LEASE_CHECK_INTERVAL == 0 && isLeaseCheckEnabled(leaseTimeOut)) { long now = getTime(); if (now + leaseTimeOut > lease) { long newLease = now + 2 * leaseTimeOut; NodeBuilder builder = store.getRoot().builder(); builder.child(ASYNC).setProperty(leaseName, newLease); mergeWithConcurrencyCheck(store, validatorProviders, builder, checkpoint, lease, name); lease = newLease; } } }