ontoportal-lirmm / annotators

Web service to add functionalities to the http://bioportal.bioontology.org and similar ontology annotators
5 stars 6 forks source link

AnnotatorPlus call with percent signs throws com.eclipsesource.json.ParseException #49

Open jvendetti opened 3 months ago

jvendetti commented 3 months ago

From the BioPortal support list:

Hello sir/mam,

I was trying to generate annotations of a particular text and the server is giving error.

Raw text: "WHO 2017 classification also proposed that the well-differentiated G3 pancreatic neuroendocrine tumors (PNETs) had a Ki-67 index usually between 20% and 55%."

The error seems to be with '%' keyword. However, this issue seems to be only with annotatorplus and not annotator.

Full stack trace from the Tomcat logs:

14-May-2024 15:03:23.375 SEVERE [http-nio-8080-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [AnnotatorServlet] in context with path [/annotatorplus] threw exception
    com.eclipsesource.json.ParseException: Unexpected end of input at 1:1
        at com.eclipsesource.json.JsonParser.error(JsonParser.java:490)
        at com.eclipsesource.json.JsonParser.expected(JsonParser.java:484)
        at com.eclipsesource.json.JsonParser.readValue(JsonParser.java:193)
        at com.eclipsesource.json.JsonParser.parse(JsonParser.java:152)
        at com.eclipsesource.json.JsonParser.parse(JsonParser.java:91)
        at com.eclipsesource.json.Json.parse(Json.java:295)
        at org.sifrproject.annotations.input.BioPortalJSONAnnotationParser.parseAnnotations(BioPortalJSONAnnotationParser.java:65)
        at org.sifrproject.servlet.AnnotatorServlet.doPost(AnnotatorServlet.java:177)
        at org.sifrproject.servlet.AnnotatorServlet.doGet(AnnotatorServlet.java:118)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.sifrproject.util.CharacterSetFilter.doFilter(CharacterSetFilter.java:24)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:750)