We're updating the issue view to help you get more done. 

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

Description

Step to reproduce:

  • go to Admin > Vocabularies

  • reindex HPO

  • reindexing fails with this error log:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 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:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [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

Environment

None

Status

Assignee

Veronika Koltunova

Reporter

Sasha Andjic

Labels

None

External issue ID

None

External issue ID

None

Components

Fix versions

Affects versions

1.3

Priority

Medium