protected void notifyDeliveryFuturesOnSuccess(BucketInfo info, Long arriveTime) { synchronized (deliveryFuturesMap) { List<RecordFuture> deliveryFutures = deliveryFuturesMap.get(info.getBucketId()); if (deliveryFutures != null) { for (RecordFuture future : deliveryFutures) { RecordInfo recordInfo = new RecordInfo(info); future.setValue(recordInfo, arriveTime); } deliveryFuturesMap.remove(info.getBucketId()); } } }
/** * Sets value. * * @param value value * @param arriveTime arrive time */ public void setValue(RecordInfo value, Long arriveTime) { try { value.setRecordAddedTimestampMs(recordAddedTimestampMs); value.setRecordDeliveryTimeMs(arriveTime - recordAddedTimestampMs); this.queue.put(new ExecutionResult<>(value, null)); } catch (InterruptedException ex) { LOG.warn("Failed to push value", ex); } state = State.DONE; }
Assert.assertEquals(defaultId, future.get().getBucketInfo().getBucketId());