@Override public void deleteSegment(DeleteSegment deleteSegment) { String segment = deleteSegment.getSegment(); final String operation = "deleteSegment"; if (!verifyToken(segment, deleteSegment.getRequestId(), deleteSegment.getDelegationToken(), operation)) { return; } log.info(deleteSegment.getRequestId(), "Deleting segment {} ", deleteSegment); segmentStore.deleteStreamSegment(segment, TIMEOUT) .thenRun(() -> { connection.send(new SegmentDeleted(deleteSegment.getRequestId(), segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_BYTES, segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_EVENTS, segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_READ_BYTES, segment)); }) .exceptionally(e -> handleException(deleteSegment.getRequestId(), segment, operation, e)); }