while (true) {
byte[] ser_msg = puller.recv();
if (ser_msg != null && ser_msg.length > 0) {
Tuple tuple = deserializer.deserialize(ser_msg);
Object id = tuple.getValue(0);
Object olist = pending.remove(id);
if (olist == null) {
continue;
}
List list = (List) olist;
Object start_time_ms = list.get(2);
Long time_delta = null;
if (start_time_ms != null) {
time_delta = TimeUtils.time_delta_ms((Long) start_time_ms);
}
Object msgId = list.get(0);
Object tupleInfo = list.get(1);
if (msgId == null||tupleInfo==null) {
continue;
}
String stream_id = tuple.getSourceStreamId();
if (stream_id.equals(Acker.ACKER_ACK_STREAM_ID)) {
event_queue.add(new AckSpoutMsg(spout, storm_conf,
msgId, (TupleInfo)tupleInfo, time_delta, task_stats));
} else if (stream_id.equals(Acker.ACKER_FAIL_STREAM_ID)) {
event_queue.add(new FailSpoutMsg(spout, storm_conf,