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

Andrew Hankinson edited comment on SOLR-6357 at 11/22/17 10:18 PM:
-------------------------------------------------------------------

I'm still seeing a problem related to this in Solr 7.0.1 (OSX) and 7.1.0 
(RHEL7).

*Sample data:*

collections_sm is a dynamic multivalued string field. All others are string 
fields.

{code:javascript}
{
"id":"1234",
"object_id":"1234",
"type":"object"
"collections_sm":["printed books"]
}

{
"id":"4567",
"object_id":"1234",
"type":"surface"
}

{
"id":"7890",
"object_id":"1234",
"type":"image"
}
{code}

*Query:*

{code}
<delete><query>{!join from=id to=object_id}collections_sm:('printed 
books')</query></delete>
{code}

*Query log*

{code}
2017-11-22 22:00:20.802 INFO  (qtp466002798-19) [   x:mycore] 
o.a.s.u.p.LogUpdateProcessorFactory [mycore]  webapp=/solr path=/update 
params={commit=true}{deleteByQuery={!join from=id 
to=object_id}collections_sm:('printed books') (-1584805205294186496)} 0 5
2017-11-22 22:00:20.802 ERROR (qtp466002798-19) [   x:mycore] 
o.a.s.h.RequestHandlerBase org.apache.lucene.store.AlreadyClosedException: this 
IndexWriter is closed
{code}

*Corrupted Index*

This seems to put the index in a corrupt state -- it will not accept any more 
write or modification operations to the core until the data directory is 
deleted. Any attempts to make changes to the core will result in an error:


{code}
Caused by: java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher 
cannot be cast to org.apache.solr.search.SolrIndexSearcher
        at 
org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:169)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54)
        at 
org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:204)
        at 
org.apache.solr.update.DeleteByQueryWrapper.createWeight(DeleteByQueryWrapper.java:72)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at 
org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:724)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.applyQueryDeletes(FrozenBufferedUpdates.java:687)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:443)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:324)
        at 
org.apache.lucene.index.DocumentsWriter$ResolveUpdatesEvent.process(DocumentsWriter.java:723)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5057)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5045)
        at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:466)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:293)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:278)
        at 
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:235)
        at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1987)
        at 
org.apache.solr.update.UpdateLog.openRealtimeSearcher(UpdateLog.java:648)
        at org.apache.solr.update.UpdateLog.deleteByQuery(UpdateLog.java:629)
        at 
org.apache.solr.update.DirectUpdateHandler2.deleteByQuery(DirectUpdateHandler2.java:534)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processDelete(RunUpdateProcessorFactory.java:78)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalDelete(DistributedUpdateProcessor.java:996)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.versionDeleteByQuery(DistributedUpdateProcessor.java:1691)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doDeleteByQuery(DistributedUpdateProcessor.java:1595)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processDelete(DistributedUpdateProcessor.java:1404)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processDelete(LogUpdateProcessorFactory.java:124)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.handler.loader.XMLLoader.processDelete(XMLLoader.java:366)
        at 
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:292)
        at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:188)
        at 
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
        ... 33 more

2017-11-22 22:00:20.803 ERROR (qtp466002798-19) [   
x:digital_bodleian_production] o.a.s.s.HttpSolrCall 
null:org.apache.lucene.store.AlreadyClosedException: this IndexWriter is closed
        at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:896)
        at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:910)
        at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3377)
        at 
org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:679)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:93)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalCommit(DistributedUpdateProcessor.java:1950)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1926)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:160)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:69)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:72)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2484)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:720)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:526)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:382)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:326)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at 
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.server.Server.handle(Server.java:534)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
        at 
org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher 
cannot be cast to org.apache.solr.search.SolrIndexSearcher
        at 
org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:169)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54)
        at 
org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:204)
        at 
org.apache.solr.update.DeleteByQueryWrapper.createWeight(DeleteByQueryWrapper.java:72)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at 
org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:724)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.applyQueryDeletes(FrozenBufferedUpdates.java:687)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:443)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:324)
        at 
org.apache.lucene.index.DocumentsWriter$ResolveUpdatesEvent.process(DocumentsWriter.java:723)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5057)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5045)
        at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:466)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:293)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:278)
        at 
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:235)
        at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1987)
        at 
org.apache.solr.update.UpdateLog.openRealtimeSearcher(UpdateLog.java:648)
        at org.apache.solr.update.UpdateLog.deleteByQuery(UpdateLog.java:629)
        at 
org.apache.solr.update.DirectUpdateHandler2.deleteByQuery(DirectUpdateHandler2.java:534)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processDelete(RunUpdateProcessorFactory.java:78)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalDelete(DistributedUpdateProcessor.java:996)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.versionDeleteByQuery(DistributedUpdateProcessor.java:1691)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doDeleteByQuery(DistributedUpdateProcessor.java:1595)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processDelete(DistributedUpdateProcessor.java:1404)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processDelete(LogUpdateProcessorFactory.java:124)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.handler.loader.XMLLoader.processDelete(XMLLoader.java:366)
        at 
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:292)
        at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:188)
        at 
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
        ... 33 more
{code}



was (Author: ahankinson):
I'm still seeing a problem related to this in Solr 7.0.1 (OSX) and 7.1.0 
(RHEL7).

*Sample data:*

collections_sm is a dynamic multivalued string field. All others are string 
fields.

{code:javascript}
{
"id":"1234",
"object_id":"1234",
"type":"object"
"collections_sm":["printed books"]
}

{
"id":"4567",
"object_id":"1234",
"type":"surface"
}

{
"id":"7890",
"object_id":"1234",
"type":"image"
}
{code}

*Query:*

{code}
<delete><query>{!join from=id to=object_id}collections_sm:('printed 
books')</query></delete>
{code}

*Query log*

{code}
2017-11-22 22:00:20.802 INFO  (qtp466002798-19) [   x:mycore] 
o.a.s.u.p.LogUpdateProcessorFactory [mycore]  webapp=/solr path=/update 
params={commit=true}{deleteByQuery={!join from=id 
to=object_id}collections_sm:('printed books') (-1584805205294186496)} 0 5
2017-11-22 22:00:20.802 ERROR (qtp466002798-19) [   x:mycore] 
o.a.s.h.RequestHandlerBase org.apache.lucene.store.AlreadyClosedException: this 
IndexWriter is closed
{code}

What's more, is that this seems to put the index in a corrupt state -- it will 
not accept any more write or modification operations to the core until the data 
directory is deleted. Any attempts to make changes to the core will result in 
an error:


{code}
Caused by: java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher 
cannot be cast to org.apache.solr.search.SolrIndexSearcher
        at 
org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:169)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54)
        at 
org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:204)
        at 
org.apache.solr.update.DeleteByQueryWrapper.createWeight(DeleteByQueryWrapper.java:72)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at 
org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:724)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.applyQueryDeletes(FrozenBufferedUpdates.java:687)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:443)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:324)
        at 
org.apache.lucene.index.DocumentsWriter$ResolveUpdatesEvent.process(DocumentsWriter.java:723)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5057)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5045)
        at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:466)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:293)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:278)
        at 
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:235)
        at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1987)
        at 
org.apache.solr.update.UpdateLog.openRealtimeSearcher(UpdateLog.java:648)
        at org.apache.solr.update.UpdateLog.deleteByQuery(UpdateLog.java:629)
        at 
org.apache.solr.update.DirectUpdateHandler2.deleteByQuery(DirectUpdateHandler2.java:534)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processDelete(RunUpdateProcessorFactory.java:78)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalDelete(DistributedUpdateProcessor.java:996)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.versionDeleteByQuery(DistributedUpdateProcessor.java:1691)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doDeleteByQuery(DistributedUpdateProcessor.java:1595)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processDelete(DistributedUpdateProcessor.java:1404)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processDelete(LogUpdateProcessorFactory.java:124)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.handler.loader.XMLLoader.processDelete(XMLLoader.java:366)
        at 
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:292)
        at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:188)
        at 
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
        ... 33 more

2017-11-22 22:00:20.803 ERROR (qtp466002798-19) [   
x:digital_bodleian_production] o.a.s.s.HttpSolrCall 
null:org.apache.lucene.store.AlreadyClosedException: this IndexWriter is closed
        at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:896)
        at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:910)
        at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3377)
        at 
org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:679)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:93)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalCommit(DistributedUpdateProcessor.java:1950)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1926)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:160)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:68)
        at 
org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:69)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:72)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:177)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2484)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:720)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:526)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:382)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:326)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at 
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
        at org.eclipse.jetty.server.Server.handle(Server.java:534)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
        at 
org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
        at 
org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher 
cannot be cast to org.apache.solr.search.SolrIndexSearcher
        at 
org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:169)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at org.apache.lucene.search.BooleanWeight.<init>(BooleanWeight.java:54)
        at 
org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:204)
        at 
org.apache.solr.update.DeleteByQueryWrapper.createWeight(DeleteByQueryWrapper.java:72)
        at 
org.apache.lucene.search.IndexSearcher.createWeight(IndexSearcher.java:734)
        at 
org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:724)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.applyQueryDeletes(FrozenBufferedUpdates.java:687)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:443)
        at 
org.apache.lucene.index.FrozenBufferedUpdates.apply(FrozenBufferedUpdates.java:324)
        at 
org.apache.lucene.index.DocumentsWriter$ResolveUpdatesEvent.process(DocumentsWriter.java:723)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5057)
        at 
org.apache.lucene.index.IndexWriter.processEvents(IndexWriter.java:5045)
        at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:466)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:293)
        at 
org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:278)
        at 
org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:235)
        at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1987)
        at 
org.apache.solr.update.UpdateLog.openRealtimeSearcher(UpdateLog.java:648)
        at org.apache.solr.update.UpdateLog.deleteByQuery(UpdateLog.java:629)
        at 
org.apache.solr.update.DirectUpdateHandler2.deleteByQuery(DirectUpdateHandler2.java:534)
        at 
org.apache.solr.update.processor.RunUpdateProcessor.processDelete(RunUpdateProcessorFactory.java:78)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalDelete(DistributedUpdateProcessor.java:996)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.versionDeleteByQuery(DistributedUpdateProcessor.java:1691)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.doDeleteByQuery(DistributedUpdateProcessor.java:1595)
        at 
org.apache.solr.update.processor.DistributedUpdateProcessor.processDelete(DistributedUpdateProcessor.java:1404)
        at 
org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.processDelete(LogUpdateProcessorFactory.java:124)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.update.processor.UpdateRequestProcessor.processDelete(UpdateRequestProcessor.java:59)
        at 
org.apache.solr.handler.loader.XMLLoader.processDelete(XMLLoader.java:366)
        at 
org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:292)
        at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:188)
        at 
org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
        at 
org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
        ... 33 more
{code}


> Using query time Join in deleteByQuery throws ClassCastException
> ----------------------------------------------------------------
>
>                 Key: SOLR-6357
>                 URL: https://issues.apache.org/jira/browse/SOLR-6357
>             Project: Solr
>          Issue Type: Bug
>          Components: query parsers
>    Affects Versions: 4.9
>            Reporter: Arcadius Ahouansou
>            Assignee: Mikhail Khludnev
>             Fix For: 7.0
>
>         Attachments: SOLR-6357.patch
>
>
> Consider the following input document where we have:
> - 1 Samsung mobile phone and
> - 2 manufactures: Apple and Samsung.
> {code}
> [
>    {
>       "id":"galaxy note ii",
>       "cat":"product",
>       "manu_s":"samsung"
>    },
>    {
>       "id":"samsung",
>       "cat":"manufacturer",
>       "name":"Samsung Electronics"
>    },
>    {
>       "id":"apple",
>       "cat":"manufacturer",
>       "name":"Apple Inc"
>    }
> ]
> {code}
> My objective is to delete from the default index all manufacturers not having 
> any product in the index.
> After indexing (  curl 'http://localhost:8983/solr/update?commit=true' -H 
> "Content-Type: text/json" --data-binary @delete-by-join-query.json )
> I went to
> {code}http://localhost:8983/solr/select?q=cat:manufacturer -{!join 
> from=manu_s to=id}cat:product
> {code}
> and I could see only Apple, the only manufacturer not having any product in 
> the index.
> However, when I use that same query for deletion: 
> {code}
> http://localhost:8983/solr/update?commit=true&stream.body=<delete><query>cat:manufacturer
>  -{!join from=manu_s to=id}cat:product</query></delete>
> {code}
> I get
> {code}
> java.lang.ClassCastException: org.apache.lucene.search.IndexSearcher cannot 
> be cast to org.apache.solr.search.SolrIndexSearcher
>       at 
> org.apache.solr.search.JoinQuery.createWeight(JoinQParserPlugin.java:143)
>       at 
> org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:185)
>       at 
> org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:526)
>       at 
> org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:185)
>       at 
> org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:526)
>       at 
> org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:684)
>       at 
> org.apache.lucene.search.QueryWrapperFilter.getDocIdSet(QueryWrapperFilter.java:55)
>       at 
> org.apache.lucene.index.BufferedUpdatesStream.applyQueryDeletes(BufferedUpdatesStream.java:552)
>       at 
> org.apache.lucene.index.BufferedUpdatesStream.applyDeletesAndUpdates(BufferedUpdatesStream.java:287)
>       at 
> {code}
> This seems to be a bug.
> Looking at the source code, the exception is happening in {code}
>  @Override
>   public Weight createWeight(IndexSearcher searcher) throws IOException {
>     return new JoinQueryWeight((SolrIndexSearcher)searcher);
>   }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to