[ https://issues.apache.org/jira/browse/ARROW-18178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Li resolved ARROW-18178. ------------------------------ Fix Version/s: 11.0.0 Resolution: Fixed Issue resolved by pull request 14534 [https://github.com/apache/arrow/pull/14534] > [Java] ArrowVectorIterator incorrectly closes Vectors > ------------------------------------------------------ > > Key: ARROW-18178 > URL: https://issues.apache.org/jira/browse/ARROW-18178 > Project: Apache Arrow > Issue Type: Improvement > Components: Java > Affects Versions: 10.0.0 > Reporter: Larry White > Assignee: Larry White > Priority: Major > Labels: pull-request-available > Fix For: 11.0.0 > > Time Spent: 1h > Remaining Estimate: 0h > > If you’re using the iterator with reuseVectorSchemaRoot set to false, the > first n-1 VSRs returned by a call to next() have their resources managed by > the client code, but the last one gets closed when the iterator is closed. > This is inconsistent and contradicts the javadoc for next: > * If \{@link JdbcToArrowConfig#isReuseVectorSchemaRoot()} is false, > * the client is responsible for freeing its resources. > The iterator calls close on its CompositeJDBCConsumer instance, which in turn > closes the vectors held by each consumer. > > {{@Override}} > {{public void close() {}} > {{ if (config.isReuseVectorSchemaRoot()) {}} > {{ nextBatch.close();}} > } > {{ compositeConsumer.close();}} > {{}}} -- This message was sent by Atlassian Jira (v8.20.10#820010)