Skip to content

Bad interaction between window() and limit() #357

@nmishkin

Description

@nmishkin

Expected behavior and actual behavior:

I'm building a Seq that contains limit() and window() terms and I'm seeing some surprising behavior:

  • If the limit() comes after the window() it appears that the iterator that the Seq is based on gets completely drained even though the stream terminates as expected after the number of items specified in the limit() are processed.
  • If the limit() comes before the window() the iterator is not drained. (The stream also terminates as expected.)

In my real scenario, the iterator that the Seq is based on is an iterator on top of a DB cursor and the limit() comes after the window(). I really need the behavior to not be that the code tries to drain this iterator--i.e., read a ton of rows from the DB.

Is this a bug or just the way things work?

Steps to reproduce the problem:

I've attached a simple program that exhibits the behavior.

Versions:

  • jOOλ: 0.9.12
  • Java: 1.8

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions