I think you're misreading this on several levels. First, I'm not testing whether the original row is "empty" in any substantial meaning of "empty". I'm testing whether the variable is set. What this test means semantically is explained in the comment below. The second is more than a test, `readOriginalRow()`, as its name indicates, has side effects. Namely, it reads an entry from the original iterator. It also indicates whether the we've reached the end, sort of like `InputStream::read()` returns -1 when the stream is finished. Collapsing the two ifs would make the comment placement difficult and would obscure the call with side effects.