ERROR org.bgee.controller.FrontController 293 doRequest - catching java.lang.IllegalStateException: The term should match either the gene id/name or one of its synonyms. Term: upk\3a GeneTO;GeneTO [geneId=ENSG00000100373, speciesId=9606, geneBioTypeId=6, OMAParentNodeId=185046, ensemblGene=true, geneMappedToGeneIdCount=1]
at org.bgee.model.gene.GeneService.geneMatch(GeneService.java:265)
at org.bgee.model.gene.GeneService.lambda$searchByTerm$4(GeneService.java:245)
at org.bgee.model.gene.GeneService.searchByTerm(GeneService.java:246)
at org.bgee.controller.CommandSearch.processRequest(CommandSearch.java:65)
at org.bgee.controller.FrontController.doRequest(FrontController.java:265)
at org.bgee.controller.FrontController.doGet(FrontController.java:344)
There were several problems:
first, the term entered by the user was not URL encoded to perform the request to the server. Depending on the Tomcat version, that might or might not generate an error of illegal character.
Second, MySQL seems to simply discard backslash in queries, so that it could still find a match in the database for the term "upk\3a"
Then, because of the backslash, the application was not finding out what was the matching part between the gene name, ID, and synonyms, thus generating an Exception
In GitLab by @fbastian on Oct 11, 2018, 17:02
In the logs I came to the following error:
There were several problems: