Good catch :), but no this recursion should not be growing the stack since it's handled by another `Thread`. As soon as the `Observable` pushes a `BufferClosing` event, the `Thread` which handles the `call` method, will trigger the `listenForBufferEnd` method, which will register a new `Action1` with the newly created/fetched `Observable`. The current `Thread` is then done, and can be recycled for other things. 

The `subscribe` is actually breaking the recursion loop explicitly.