@Test public void testRouterClosedDuringOperation() throws Exception { setServerResponse(false); testWithErrorCodes(Collections.singletonMap(ServerErrorCode.No_Error, 9), serverLayout, RouterErrorCode.RouterClosed, new ErrorCodeChecker() { @Override public void testAndAssert(RouterErrorCode expectedError) throws Exception { future = router.deleteBlob(blobIdString, null); router.close(); assertFailureAndCheckErrorCode(future, expectedError); } }); }
void close() { for (DeleteOperation op : deleteOperations) { if (deleteOperations.remove(op)) { Exception e = new RouterException("Aborted operation because Router is closed.", RouterErrorCode.RouterClosed); routerMetrics.operationDequeuingRate.mark(); routerMetrics.operationAbortCount.inc(); routerMetrics.onDeleteBlobError(e); NonBlockingRouter.completeOperation(op.getFutureResult(), op.getCallback(), null, e); } } }
DeleteManager { void close() { for (DeleteOperation op : deleteOperations) { if (deleteOperations.remove(op)) { Exception e = new RouterException("Aborted operation because Router is closed.", RouterErrorCode.RouterClosed); routerMetrics.operationDequeuingRate.mark(); routerMetrics.operationAbortCount.inc(); routerMetrics.onDeleteBlobError(e); NonBlockingRouter.completeOperation(op.getFutureResult(), op.getCallback(), null, e); } } } }
DeleteManager { void close() { for (DeleteOperation op : deleteOperations) { if (deleteOperations.remove(op)) { Exception e = new RouterException("Aborted operation because Router is closed.", RouterErrorCode.RouterClosed); routerMetrics.operationDequeuingRate.mark(); routerMetrics.operationAbortCount.inc(); routerMetrics.onDeleteBlobError(e); NonBlockingRouter.completeOperation(op.getFutureResult(), op.getCallback(), null, e); } } } DeleteManager(ClusterMap clusterMap, ResponseHandler responseHandler, AccountService accountService,
      NotificationSystem notificationSystem, RouterConfig routerConfig, NonBlockingRouterMetrics routerMetrics,
      RouterCallback routerCallback, Time time); }
DeleteManager { void close() { for (DeleteOperation op : deleteOperations) { if (deleteOperations.remove(op)) { Exception e = new RouterException("Aborted operation because Router is closed.", RouterErrorCode.RouterClosed); routerMetrics.operationDequeuingRate.mark(); routerMetrics.operationAbortCount.inc(); routerMetrics.onDeleteBlobError(e); NonBlockingRouter.completeOperation(op.getFutureResult(), op.getCallback(), null, e); } } } DeleteManager(ClusterMap clusterMap, ResponseHandler responseHandler, AccountService accountService,
      NotificationSystem notificationSystem, RouterConfig routerConfig, NonBlockingRouterMetrics routerMetrics,
      RouterCallback routerCallback, Time time); void poll(List<RequestInfo> requestsToSend, Set<Integer> requestsToDrop); }
DeleteManager { void close() { for (DeleteOperation op : deleteOperations) { if (deleteOperations.remove(op)) { Exception e = new RouterException("Aborted operation because Router is closed.", RouterErrorCode.RouterClosed); routerMetrics.operationDequeuingRate.mark(); routerMetrics.operationAbortCount.inc(); routerMetrics.onDeleteBlobError(e); NonBlockingRouter.completeOperation(op.getFutureResult(), op.getCallback(), null, e); } } } DeleteManager(ClusterMap clusterMap, ResponseHandler responseHandler, AccountService accountService,
      NotificationSystem notificationSystem, RouterConfig routerConfig, NonBlockingRouterMetrics routerMetrics,
      RouterCallback routerCallback, Time time); void poll(List<RequestInfo> requestsToSend, Set<Integer> requestsToDrop);  }