[ 
https://issues.apache.org/jira/browse/SOLR-2141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13497207#comment-13497207
 ] 

Dominik Siebel commented on SOLR-2141:
--------------------------------------

Hi guys,

I think I might have found the root of evil:
SOLR-3262 (removing "threads" from DIH). Problem is that in nested entites the 
used VariableResolverImpl differs from the one used by the EvaluatorBag (since 
everytime the getVariableResolver method is called a new one gets created) in 
the functions namespace (since that one get's initialized in the DocBuilder 
constructor).
Anyway: I removed the private functionsNamespace cache property from the 
docBuilder and moved the call EvaluatorBag.getFunctionsNamespace() into 
DocBuilder.getVariableResolver(). That fixes all of my problems.

[~vkirilchuk], [~sandeep2852] please find attached patch and let me know if 
this fixes your errors, too.
                
> NullPointerException when using escapeSql function
> --------------------------------------------------
>
>                 Key: SOLR-2141
>                 URL: https://issues.apache.org/jira/browse/SOLR-2141
>             Project: Solr
>          Issue Type: Bug
>          Components: contrib - DataImportHandler
>    Affects Versions: 1.4.1
>         Environment: openjdk 1.6.0 b12
>            Reporter: Edward Rudd
>            Assignee: Koji Sekiguchi
>         Attachments: dih-config.xml, dih-file.xml, SOLR-2141.b341f5b.patch, 
> SOLR-2141-sample.patch, SOLR-2141-test.patch
>
>
> I have two entities defined, nested in each other..
> <entity name="article" query="select category, subcategory from articles">
>    <entity name="other" query="select other from othertable where 
> category='${dataimporter.functions.escapeSql(article.category)}'
>               AND 
> subcategory='${dataimporter.functions.escapeSql(article.subcategory)}'">  
>    </entity>
> </entity>
> Now, when I run that it bombs on any article where subcategory = '' (it's a 
> NOT NULL column so empty string is there)  If i do where subcategory!='' in 
> the article query it works fine (aside from not pulling in all of the 
> articles).
> org.apache.solr.handler.dataimport.DataImportHandlerException: 
> java.lang.NullPointerException
>         at 
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:424)
>         at 
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:383)
>         at 
> org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)
>         at 
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180)
>         at 
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331)
>         at 
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389)
>         at 
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370)
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.solr.handler.dataimport.EvaluatorBag$1.evaluate(EvaluatorBag.java:75)
>         at 
> org.apache.solr.handler.dataimport.EvaluatorBag$5.get(EvaluatorBag.java:216)
>         at 
> org.apache.solr.handler.dataimport.EvaluatorBag$5.get(EvaluatorBag.java:204)
>         at 
> org.apache.solr.handler.dataimport.VariableResolverImpl.resolve(VariableResolverImpl.java:107)
>         at 
> org.apache.solr.handler.dataimport.TemplateString.fillTokens(TemplateString.java:81)
>         at 
> org.apache.solr.handler.dataimport.TemplateString.replaceTokens(TemplateString.java:75)
>         at 
> org.apache.solr.handler.dataimport.VariableResolverImpl.replaceTokens(VariableResolverImpl.java:87)
>         at 
> org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:71)
>         at 
> org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:237)
>         at 
> org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357)
>         ... 6 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to