Pavel Vasilyev created SOLR-10475: ------------------------------------- Summary: DIH JdbcDataSource SqlEntityProcessor - Support Child-free parents after all children has been consumed Key: SOLR-10475 URL: https://issues.apache.org/jira/browse/SOLR-10475 Project: Solr Issue Type: Bug Security Level: Public (Default Security Level. Issues are Public) Components: contrib - DataImportHandler Affects Versions: 5.5.1 Environment: Solr on Linux machine Oracle Data base (11g) Reporter: Pavel Vasilyev
Assume DIH's feature of zipping {{parents}} and {{children}} is used. Here is sample {{dih-config.xml}}: {code:xml} <dataConfig> <document> <entity name="parent" processor="SqlEntityProcessor" query="SELECT * FROM PARENT ORDER BY id"> <entity name="child_1" processor="SqlEntityProcessor" where="parent_id=parent.id" query="SELECT * FROM CHILD_1 ORDER BY parent_id" join="zipper" > </entity> </entity> </document> </dataConfig> {code} One might come up with the issue when: - Oracle Database is used; - at some point of joining there are no more children documents; thus the child's {{ResultSet}} is closed; - parent documents are not finished; thus {{ResultSet}} is still in process; - attempting to find child for the next parent is failing due to closed {{ResultSet}} Here is stacktrace: {code} org.apache.solr.handler.dataimport.DataImportHandlerException: java.sql.SQLRecoverableException: Closed Resultset: next at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:61) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.hasnext(JdbcDataSource.java:434) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator$1.hasNext(JdbcDataSource.java:350) at com.google.common.collect.Iterators$PeekingImpl.hasNext(Iterators.java:1216) at org.apache.solr.handler.dataimport.Zipper.supplyNextChild(Zipper.java:65) at org.apache.solr.handler.dataimport.EntityProcessorBase.getNext(EntityProcessorBase.java:127) at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:75) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:244) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:475) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:514) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:414) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:329) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:232) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:416) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:480) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:461) Caused by: java.sql.SQLRecoverableException: Closed Resultset: next at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:238) at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.hasnext(JdbcDataSource.java:426) ... 14 more {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org