public MessageReference next() {
   try {
     PListEntry entry = iterator.next();
     Message message = getMessage(entry.getByteSequence());
     message.getMessageId().setPlistLocator(entry.getLocator());
     return message;
   } catch (IOException e) {
     LOG.error("I/O error", e);
     throw new RuntimeException(e);
   }
 }
 public void release() {
   iterator.release();
 }
 public void remove() {
   iterator.remove();
 }
 public boolean hasNext() {
   return iterator.hasNext();
 }