code: private void findFirst(
                            DeleteStack    stack)
      {
          boolean x = optimisticFindFirst(stack);
          if (x == pessimisticNeeded)
              pessimisticFindFirst(stack);
      }
docs: Find the first key in the index.
  
  <p>Start by using a non-locking, optimistic search.  If this
  doesn't work then switch to a pessimistic search which locks the
  index.</p>
  
  @param stack The stack to use to record the traversal.
  
  @return The first entry in the index.