如何修补Solr 4.2 for SerEnity Processor Sub-Entity问题

时间:2013-08-14 11:52:20

标签: solr solr4

根据SolrEntityProcessor is called only once for sub-entities,我们可以使用https://issues.apache.org/jira/browse/SOLR-3336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel中的修补SolrEntityProcessor来解决子实体问题。

我尝试将jar文件重命名为zip,然后尝试替换已修补的文件,但因为我只获得了java文件,所以我无法用类文件替换它。所以我放弃了这个想法。

这是我尝试过的。我反编译了solr 4.2包中的原始jar solr-dataimporthandler-4.2.0.jar。然后我替换补丁文件。并尝试编译文件再次制作jar。但是我开始收到编译错误。

。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:')'预期

/ * 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:expected / 432 / if(XPathEntityProcessor) .2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:not statem ent / 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:表达式的非法星号/ 432 * / if(XPathEntityProcessor.2.this.val $ isEnd.get() ){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:';'预期

/ * 432 * / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:397:';'预期

/ * 432 / if(XPathEntityProcessor.2.this.val $ isEnd.get()){^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:398:not statem ent / 433 * / XPathEntityProcessor.2.this.val $ throwExp.set(false); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:398:';'预期

/ * 433 / XPathEntityProcessor.2.this.val $ throwExp.set(false); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:406:not statem ent / 442 * / XPathEntityProcessor.2.this.val $ isEnd.set(true); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:406:';'预期

/ * 442 / XPathEntityProcessor.2.this.val $ isEnd.set(true); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:409:不是statem ent / 445 * / XPathEntityProcessor.2.this.offer(row); ^。\ org \ apache \ solr \ handler \ dataimport \ XPathEntityProcessor.java:409:';'预期

/ * 445 * / XPathEntityProcessor.2.this.offer(row); ^ 12错误

知道如何为此问题修补Solr4.2。

1 个答案:

答案 0 :(得分:0)

您所指的

This issue已于一年多前(2012年5月)在Solr 3.6.1中修复并关闭。

这意味着该修复程序应该已在4.2中提供。您不再需要应用此修补程序。

编辑-1

我将SOLR-3336中附带的SolrEntityProcessor.java文件与3.6trunk分支进行了比较。除了清理打印语句之外,我看不出任何区别。这是因为补丁已经提交到3.6以后。

如果您认为仍然存在问题,则可能不是此问题中解决的问题,这可能意味着使用此文件进行修补不会对您有所帮助。欢迎您继续进行此练习,但我建议您确保自己正常(通过与Solr Devs合作)。我觉得你可能正在考虑另一个问题,如果有的话。