Github user prokopowicz commented on the pull request:

    https://github.com/apache/storm/pull/642#issuecomment-141141208
  
    we've seen a related problem when a custom scheme returns an empty list of 
lists via generateTuples.  The code in partitionManager does not ack the offset 
in that case.  It should be made clear that a scheme should not return an empty 
list of lists, but null, if it deserializes no objects.  Or, this code in 
PartitionManager should be fixed to treat an empty list of lists in the same 
way it treats a null list.
    
    ```java
                if (tups != null) {
                    if(_spoutConfig.topicAsStreamId) {
                        for (List<Object> tup : tups) {
                            collector.emit(_spoutConfig.topic, tup, new 
KafkaMessageId(_partition, toEmit.offset));
                        }
                    } else {
                        for (List<Object> tup : tups) {
                            collector.emit(tup, new KafkaMessageId(_partition, 
toEmit.offset));
                        }
                    }
                    break;
                } else {
                    ack(toEmit.offset);
                }
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to