code: @Nullable
      public DBObject tryNext() {
          if (cursor == null) {
              FindOperation<DBObject> operation = getQueryOperation(decoder);
              if (!operation.getCursorType().isTailable()) {
                  throw new IllegalArgumentException("Can only be used with a tailable cursor");
              }
              initializeCursor(operation);
          }
          DBObject next = cursor.tryNext();
          setServerCursorOnFinalizer(cursor.getServerCursor());
          return currentObject(next);
      }
docs: Non blocking check for tailable cursors to see if another object is available.
  
  <p>Returns the object the cursor is at and moves the cursor ahead by one or
  return null if no documents is available.</p>
  
  @return the next element or null
  @throws MongoException if failed
  @throws IllegalArgumentException if the cursor is not tailable
  @mongodb.driver.manual /core/cursors/#cursor-batches Cursor Batches