Java, Google Collections Library; ¿Problema con AbstractIterator?

Estoy usando la biblioteca de Google CollectionsAbstractIterator Para implementar un generador. Me encontré con un problema mientras lo hacía; Lo he reducido a un tipo más básico y he reproducido el problema. Esta reducción es, obviamente, una exageración por lo que hace, contando desde 1 hasta números a través de un Iterable.

Esencialmente en el siguiente código, la versión sin comentarios funciona, y la comentada no lo hace (proporciona un último elemento nulo, en lugar de terminar en el último número).

¿Estoy haciendo algo mal o es un problema con la biblioteca?

private Iterable<Integer> elementGenerator(final int numelements) {
  return new Iterable<Integer>() {
    @Override public Iterator<Integer> iterator() {
      return new AbstractIterator<Integer>(){
        int localcount=0;
        @Override protected Integer computeNext() {
          if (localcount++ == numelements) return endOfData();
          return localcount;
          // return (localcount++ == numelements) ? endOfData() : localcount;
        }
      };
    }
  };
}

También intenté juguetear con el?: disposición (por ejemplo, prefijando la devolución y comparando con +1 en su lugar), en vano. Busqué un poco buscando documentación sobre esto, pero no encontré nada. Obviamente, la?: la sintaxis es solo una conveniencia, no una necesidad, pero aun así ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta