Previously, StreamingViewResult would attempt to fetch a new Row on call...

Previously, StreamingViewResult would attempt to fetch a new Row on calling 'hasNext()', regardless of whether that Row was subsequently collected by a call to 'next'. This resulted in 'lost' Rows if 'hasNext' happened to be called more than once successively.

This patch fixes StreamingViewResult so that hasNext() can be called multiple times without side effects. The hasNext() method may also be called after the BufferedReader's stream has been closed. In this case, the method will only return 'false' instead of attempting to retrieve further Rows.