Description
iterator() implementation returns LongWritable which is cached in a final variable and set() with the new value at next(). This could be misleading as the user might create a list from the iterator's data. Something similar is happening in the getMsgList() as well.
Is this really what we want?