@Override public void markDestructable(final ResourceClaim claim) { if (claim == null) { return; } synchronized (claim) { if (getClaimantCount(claim) > 0) { return; } logger.debug("Marking claim {} as destructable", claim); try { while (!destructableClaims.offer(claim, 30, TimeUnit.MINUTES)) { } } catch (final InterruptedException ie) { } } }
@Override public void freeze(final ResourceClaim claim) { if (claim == null) { return; } if (!(claim instanceof StandardResourceClaim)) { throw new IllegalArgumentException("The given resource claim is not managed by this Resource Claim Manager"); } ((StandardResourceClaim) claim).freeze(); synchronized (claim) { if (getClaimantCount(claim) == 0) { claimantCounts.remove(claim); } } }
@Override public void markDestructable(final ResourceClaim claim) { if (claim == null) { return; } synchronized (claim) { if (getClaimantCount(claim) > 0) { return; } logger.debug("Marking claim {} as destructable", claim); try { while (!destructableClaims.offer(claim, 30, TimeUnit.MINUTES)) { } } catch (final InterruptedException ie) { } } }
@Override public void freeze(final ResourceClaim claim) { if (claim == null) { return; } if (!(claim instanceof StandardResourceClaim)) { throw new IllegalArgumentException("The given resource claim is not managed by this Resource Claim Manager"); } ((StandardResourceClaim) claim).freeze(); synchronized (claim) { if (getClaimantCount(claim) == 0) { claimantCounts.remove(claim); } } }