Implement DataDecoder::listHasMoreItems

Why test this three times? It isn't clear from the implementation how the subsequent calls could return a different value.