Uploaded image for project: 'PhenoTips'
  1. PT-4002

Reindexing HPO fails when an HPO term has more than one single value type field

    Details

    • Sprint:

      Description

      Step to reproduce:

      • go to Admin > Vocabularies
      • reindex HPO
      • reindexing fails with this error log:
      May 01, 2019 12:51:55 PM org.restlet.engine.application.StatusFilter doHandle
      WARNING: Exception or error caught in status service
      org.apache.solr.common.SolrException: ERROR: [doc=HP:0002282] multiple values encountered for non multiValued field comment: [Gray matter heterotopia is caused by clumps of grey matter being located in the wrong part of the brain. It is characterized as a type of cortical malformation. The neurons in heterotopia may appear to be normal, except for their mislocation; nuclear studies have shown glucose metabolism equal to that of normally positioned gray matter. The condition causes a variety of symptoms, but usually includes some degree of epilepsy or recurring seizures, and often affects the brain's ability to function on higher levels. Symptoms range from nonexistent to profound, in which case heterotopia can result in severe seizure disorder, loss of motor skills, and mental retardation., Neuronal heterotopia consists of grey matter within the white matter, and the term grey matter heterotopia is more frequently used.]
              at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:150)
              at org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:101)
              at org.apache.solr.update.DirectUpdateHandler2.updateDocument(DirectUpdateHandler2.java:922)
              at org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:913)
              at org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:302)
              at org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:239)
              at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:194)
              at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:67)
              at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:55)
              at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:1006)
              at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:749)
              at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:252)
              at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:179)
              at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)
              at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
              at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
              at org.apache.solr.core.SolrCore.execute(SolrCore.java:2440)
              at org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:179)
              at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:160)
              at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
              at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:71)
              at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:85)
              at org.phenotips.vocabulary.internal.solr.AbstractSolrVocabulary.commitTerms(AbstractSolrVocabulary.java:382)
              at org.phenotips.vocabulary.internal.solr.AbstractOBOSolrVocabulary.index(AbstractOBOSolrVocabulary.java:133)
              at org.phenotips.vocabulary.internal.solr.AbstractSolrVocabulary.reindex(AbstractSolrVocabulary.java:190)
              at org.phenotips.vocabularies.rest.internal.DefaultVocabularyResource.reindex(DefaultVocabularyResource.java:159)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
              at java.lang.reflect.Method.invoke(Unknown Source)
              at org.restlet.ext.jaxrs.internal.wrappers.AbstractMethodWrapper.internalInvoke(AbstractMethodWrapper.java:171)
              at org.restlet.ext.jaxrs.internal.wrappers.ResourceMethod.invoke(ResourceMethod.java:291)
              at org.restlet.ext.jaxrs.JaxRsRestlet.invokeMethod(JaxRsRestlet.java:1043)
              at org.restlet.ext.jaxrs.JaxRsRestlet.handle(JaxRsRestlet.java:792)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Router.doHandle(Router.java:500)
              at org.restlet.routing.Router.handle(Router.java:740)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:155)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
              at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75)
              at org.restlet.Application.handle(Application.java:391)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Router.doHandle(Router.java:500)
              at org.restlet.routing.Router.handle(Router.java:740)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.routing.Router.doHandle(Router.java:500)
              at org.restlet.routing.Router.handle(Router.java:740)
              at org.restlet.routing.Filter.doHandle(Filter.java:159)
              at org.restlet.routing.Filter.handle(Filter.java:206)
              at org.restlet.engine.ChainHelper.handle(ChainHelper.java:114)
              at org.restlet.Component.handle(Component.java:391)
              at org.restlet.Server.handle(Server.java:491)
              at org.restlet.engine.ServerHelper.handle(ServerHelper.java:74)
              at org.restlet.engine.http.HttpServerHelper.handle(HttpServerHelper.java:153)
              at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1031)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1507)
              at com.xpn.xwiki.web.XWikiContextInitializationFilter.doFilter(XWikiContextInitializationFilter.java:79)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
              at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
              at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
              at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
              at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:137)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1495)
              at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
              at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
              at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
              at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:389)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1487)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
              at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
              at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
              at org.eclipse.jetty.server.Server.handle(Server.java:370)
              at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
              at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:973)
              at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1035)
              at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:641)
              at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:231)
              at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
              at java.lang.Thread.run(Unknown Source)
      

      Example of therm with two comment fields in the April release of HPO, which generates the error displayed above:

      [Term]
      id: HP:0002282
      name: Gray matter heterotopia
      alt_id: HP:0002281
      alt_id: HP:0007314
      def: "Heterotopia or neuronal heterotopia are macroscopic clusters of misplaced neurons (gray matter), most often situated along the ventricular walls or within the subcortical white matter." [COST:neuromig, ORCID:0000-0001-5208-3432, PMID:22427329, PMID:25180909, PMID:7524438]
      comment: Gray matter heterotopia is caused by clumps of grey matter being located in the wrong part of the brain. It is characterized as a type of cortical malformation. The neurons in heterotopia may appear to be normal, except for their mislocation; nuclear studies have shown glucose metabolism equal to that of normally positioned gray matter. The condition causes a variety of symptoms, but usually includes some degree of epilepsy or recurring seizures, and often affects the brain's ability to function on higher levels. Symptoms range from nonexistent to profound, in which case heterotopia can result in severe seizure disorder, loss of motor skills, and mental retardation.
      comment: Neuronal heterotopia consists of grey matter within the white matter, and the term grey matter heterotopia is more frequently used.
      synonym: "Gray matter heterotopias" EXACT HP:0045078 []
      synonym: "Grey matter heterotopia" EXACT HP:0045076 []
      synonym: "Heterotopia" EXACT []
      synonym: "Heterotopias" EXACT HP:0045078 []
      synonym: "Neuronal heterotopia" EXACT []
      xref: MSH:D002828
      xref: SNOMEDCT_US:128490007
      xref: SNOMEDCT_US:416286003
      xref: SNOMEDCT_US:417338002
      xref: UMLS:C0008519
      is_a: HP:0002269 ! Abnormality of neuronal migration
      

        Attachments

          Issue links

            Activity

              People

              • Assignee:
                veronikaslc Veronika Koltunova
                Reporter:
                sasha Sasha Andjic
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: