public void validatePendingRequests() { final Iterator<LeaseRequest<T, C>> it = pending.iterator(); while (it.hasNext()) { final LeaseRequest<T, C> request = it.next(); final BasicFuture<PoolEntry<T, C>> future = request.getFuture(); if (future.isCancelled() && !request.isDone()) { it.remove(); } else { final Deadline deadline = request.getDeadline(); if (deadline.isExpired()) { request.failed(DeadlineTimeoutException.from(deadline)); } if (request.isDone()) { it.remove(); } } } }
public void validatePendingRequests() { final Iterator<LeaseRequest<T, C>> it = pending.iterator(); while (it.hasNext()) { final LeaseRequest<T, C> request = it.next(); final BasicFuture<PoolEntry<T, C>> future = request.getFuture(); if (future.isCancelled() && !request.isDone()) { it.remove(); } else { final Deadline deadline = request.getDeadline(); if (deadline.isExpired()) { request.failed(DeadlineTimeoutException.from(deadline)); } if (request.isDone()) { it.remove(); } } } }
private PoolEntry<T, C> getAvailableEntry(final Object state) { final PoolEntry<T, C> entry = available.poll(); if (entry != null) { if (entry.getExpiryDeadline().isExpired()) { entry.discardConnection(CloseMode.GRACEFUL); } if (!LangUtils.equals(entry.getState(), state)) { entry.discardConnection(CloseMode.GRACEFUL); } } return entry; }
private PoolEntry<T, C> getAvailableEntry(final Object state) { final PoolEntry<T, C> entry = available.poll(); if (entry != null) { if (entry.getExpiryDeadline().isExpired()) { entry.discardConnection(CloseMode.GRACEFUL); } if (!LangUtils.equals(entry.getState(), state)) { entry.discardConnection(CloseMode.GRACEFUL); } } return entry; }
public void release(final PoolEntry<T, C> releasedEntry, final boolean reusable) { removeLeased(releasedEntry); if (!reusable || releasedEntry.getExpiryDeadline().isExpired()) { releasedEntry.discardConnection(CloseMode.GRACEFUL); final Deadline deadline = leaseRequest.getDeadline(); if (deadline.isExpired()) { leaseRequest.failed(DeadlineTimeoutException.from(deadline)); } else {
public void release(final PoolEntry<T, C> releasedEntry, final boolean reusable) { removeLeased(releasedEntry); if (!reusable || releasedEntry.getExpiryDeadline().isExpired()) { releasedEntry.discardConnection(CloseMode.GRACEFUL); final Deadline deadline = leaseRequest.getDeadline(); if (deadline.isExpired()) { leaseRequest.failed(DeadlineTimeoutException.from(deadline)); } else {
@Test public void testMessage() { final Deadline deadline = Deadline.fromUnixMillis(1000).freeze(); Assert.assertTrue(deadline.toString(), deadline.isExpired()); final String format = deadline.formatTarget(); final TimeValue diff = TimeValue.ofMilliseconds(deadline.remaining()); Assert.assertEquals("Deadline: " + format + ", " + diff + " overdue", DeadlineTimeoutException.from(deadline).getMessage()); }