[ https://issues.apache.org/jira/browse/SOLR-3790?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13448798#comment-13448798 ]
Koji Sekiguchi commented on SOLR-3790: -------------------------------------- Hmm, this is not good. I think storedHighlightFieldNames in SolrIndexSearcher could be initialized twice in getStoredHighlightFieldNames() method: {code} public Collection<String> getStoredHighlightFieldNames() { if (storedHighlightFieldNames == null) { storedHighlightFieldNames = new LinkedList<String>(); for (String fieldName : fieldNames) { try { SchemaField field = schema.getField(fieldName); if (field.stored() && ((field.getType() instanceof org.apache.solr.schema.TextField) || (field.getType() instanceof org.apache.solr.schema.StrField))) { storedHighlightFieldNames.add(fieldName); } } catch (RuntimeException e) { // getField() throws a SolrException, but it arrives as a RuntimeException log.warn("Field \"" + fieldName + "\" found in index, but not defined in schema."); } } } return storedHighlightFieldNames; } {code} I think the initialization block should go to constructor. Meanwhile, Aoki-san, you can avoid the bug by specifying the explicit field names for hl.fl parameter instead of using "*". > NullPointerException and ConcurrentModificationException are thrown when > searching with highlighter > --------------------------------------------------------------------------------------------------- > > Key: SOLR-3790 > URL: https://issues.apache.org/jira/browse/SOLR-3790 > Project: Solr > Issue Type: Bug > Components: highlighter > Affects Versions: 3.5 > Environment: Ubuntu 12.04, Solr 3.5 > Reporter: shou aoki > > Hi, Im using Solr 3.5. > I found strange phenomenon in solr log. > This phenomenon has two exceptions that NullPointerException and > ConcurrentModificationException. > These exceptions are thrown by discrete threads. > I think, The same two queries thrown at same time because error log recorded > at same time. But I can't reproduce it. > Does anyone have the same phenomenon? > {code} > 2012-08-21 00:07:49,868 [qtp979682126-953] INFO SolrCore - [c3] webapp=/solr > path=/select > params={hl.tag.post=[%02]&sort=score+desc&hl.tag.pre=[%01]&hl.fl=*&wt=javabin&hl=true&defType=normalizeQParser&rows=40&version=2&fl=score,*&hl.useFastVectorHighlighter=true&start=0&q=hoge&fq=((ap.l:"771")+AND+(*:*))} > hits=4 status=500 QTime=164 > 2012-08-21 00:07:49,868 [qtp979682126-938] INFO SolrCore - [c3] webapp=/solr > path=/select > params={hl.tag.post=[%02]&sort=score+desc&hl.tag.pre=[%01]&hl.fl=*&wt=javabin&hl=true&defType=normalizeQParser&rows=12&version=2&fl=score,*&hl.useFastVectorHighlighter=true&start=0&q=hoge&fq=((ap.l:"771")+AND+(*:*))} > hits=4 status=500 QTime=1094 > 2012-08-21 00:07:49,873 [qtp979682126-953] ERROR SolrDispatchFilter - > java.util.ConcurrentModificationException > at > java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:778) > at java.util.LinkedList$ListItr.next(LinkedList.java:713) > at > org.apache.solr.highlight.SolrHighlighter.getHighlightFields(SolrHighlighter.java:106) > at > org.apache.solr.util.SolrPluginUtils.optimizePreFetchDocs(SolrPluginUtils.java:259) > at > org.apache.solr.handler.component.QueryComponent.doPrefetch(QueryComponent.java:478) > at > org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:385) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1372) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:973) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:417) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:907) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) > at org.eclipse.jetty.server.Server.handle(Server.java:350) > at > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442) > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:941) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) > at java.lang.Thread.run(Thread.java:679) > 2012-08-21 00:07:49,873 [qtp979682126-938] ERROR SolrDispatchFilter - > java.lang.NullPointerException > at > org.apache.solr.highlight.SolrHighlighter.getHighlightFields(SolrHighlighter.java:107) > at > org.apache.solr.util.SolrPluginUtils.optimizePreFetchDocs(SolrPluginUtils.java:259) > at > org.apache.solr.handler.component.QueryComponent.doPrefetch(QueryComponent.java:478) > at > org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:385) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1372) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:973) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:417) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:907) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) > at org.eclipse.jetty.server.Server.handle(Server.java:350) > at > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:442) > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:941) > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) > at java.lang.Thread.run(Thread.java:679) > {code} > This is rarely accident? These are discrete bug? > See: Similar phenomenon > http://lucene.472066.n3.nabble.com/Null-Pointer-Exception-in-SOLR-td3954952.html -- 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org