[ https://issues.apache.org/jira/browse/SOLR-1759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Noble Paul resolved SOLR-1759. ------------------------------ Resolution: Fixed Fix Version/s: 1.5 Assignee: Noble Paul committed Revision: 906906 Thanks: Gian Marco Tagliani > DIH $skipDoc issue > ------------------ > > Key: SOLR-1759 > URL: https://issues.apache.org/jira/browse/SOLR-1759 > Project: Solr > Issue Type: Bug > Components: contrib - DataImportHandler > Affects Versions: 1.4 > Reporter: Gian Marco Tagliani > Assignee: Noble Paul > Fix For: 1.5 > > Attachments: patch.txt > > > I'm using the version 1.4.0 of Solr and I'm having some trouble with the DIH > when I use the special command $skipDoc. > After skipping a document to insert, the next one is not inserted in the > proper way. > My DIH configuration is quite complex so I'll try to explain myself with a > simpler example: > item table: > id name > 1 aaa > 2 bbb > feature table: > Item_id hidden > 1 true > 2 false > DIH conf: > <document name="products"> > <entity name="item" query="select * from item"> > <field column="ID" name="id" /> > <field column="NAME" name="name" /> > <entity name="feature" query="select hidden from feature where > item_id='${item.ID}'"> > <field name="$skipDoc" column="hidden" /> > </entity> > </entity> > </document> > The result I expected is that the record named "bbb" would be imported, but > the result of my import case is that the other record (the "aaa") has been > inserted. > I took a look to the DIH code and I found a possible problem that could cause > this result. > In the DocBuilder class when a $skipDoc is detected, an exception is raised. > After handling the exception another loop starts, without cleaning up the doc > variable. > When the next record is read, the addFieldToDoc method can't fill the doc > fields because they are already filled. > To solve this problem I just clean up the doc variable when handling the > exception. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.