code: private synchronized boolean loadNextResults() {
          if ( atEndOfResults() )
              return false;
  
          do {
              nextResults.addAll(fetchNextPage());
          } while ( !atEndOfResults() && nextResults.isEmpty() );
  
          return !nextResults.isEmpty();
      }
docs: Attempts to load the next batch of results, if there are any, into the
  nextResults buffer. Returns whether there were any results to load. A
  return value of true guarantees that nextResults had items added to it.