Thanks for your input, I prefer the AutoCloseable approach too. On Sun, Jun 26, 2022 at 4:45 PM Igor Sapego <isap...@apache.org> wrote:
> I like the closable iterator approach more as well. The difference in API > is not as critical in my opinion, as we have a lot of differences in thick > and > thin APIs already and users would normally seek thin client examples and > not just re-use thick client code with thin client. > > Best Regards, > Igor > > > On Fri, Jun 24, 2022 at 7:35 PM Alexander Polovtcev < > alexpolovt...@gmail.com> > wrote: > > > I would personally prefer the closeable iterator approach, since it is > what > > most Java libraries use and most users should be familiar with it. Also > > most IDEs will warn you, if you don't close an AutoCloseable. > > > > On Fri, Jun 24, 2022 at 6:24 PM Pavel Tupitsyn <ptupit...@apache.org> > > wrote: > > > > > Igniters, > > > > > > I'm working on IgniteSet in Java thin client [1], and I'm not sure how > to > > > deal with iterator release. > > > > > > On the "thick" API side we use WeakReferenceCloseableIterator [2] to > > > release iterator resources automatically when the iterator instance is > > > claimed by GC. > > > > > > a) Reuse this on the client side somehow. > > > Pros: consistent behavior, fool-proof > > > Cons: complexity, nondeterministic resource release > > > > > > b) Make client-side iterator AutoCloseable > > > Pros: simple, deterministic > > > Cons: error-prone for users, not consistent with thick API > > > > > > Thoughts? > > > > > > > > > [1] https://issues.apache.org/jira/browse/IGNITE-16897 > > > [2] > > > > > > > > > https://github.com/apache/ignite/blob/71ff768ac98b3411fee876d42cad9689f1b16c2a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheWeakQueryIteratorsHolder.java#L350 > > > > > > > > > -- > > With regards, > > Aleksandr Polovtcev > > >