ontoportal-lirmm / annotators

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

Text of "6-mers" with negation detection enabled throws exception #47

Open jvendetti opened 1 year ago

jvendetti commented 1 year ago

Steps to reproduce:

  1. Navigate to the AnnotatorPlus page at BioPortal
  2. Enter the text string "6-mers" in the main text area
  3. Click "Show advanced options"
  4. Check the "Detect negation" checkbox
  5. Click the "Get annotations" button

BioPortal displays an error message: "Problem getting annotations, please try again"

The REST API reports a 500 error:

"GET /annotatorplus/?text=6-mers&include=prefLabel&negation=true&experiencer=false&temporality=false&longest_only=false&recognizer=&exclude_numbers=false&whole_word_only=true&exclude_synonyms=false HTTP/1.1" 500 1746

Tomcat log files show an IndexOutOfBoundsException. Full stack trace:

14-Aug-2023 17:38:33.430 SEVERE [http-nio-8080-exec-38] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [AnnotatorServlet] in context with path [/annotatorplus] threw exception
    java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
        at java.util.ArrayList.rangeCheck(ArrayList.java:659)
        at java.util.ArrayList.get(ArrayList.java:435)
        at org.sifrproject.postannotation.ContextPostAnnotationFilter.findFirstTokenIndex(ContextPostAnnotationFilter.java:66)
        at org.sifrproject.postannotation.ContextPostAnnotationFilter.postAnnotate(ContextPostAnnotationFilter.java:95)
        at org.sifrproject.postannotation.LIRMMPostAnnotationRegistry.apply(LIRMMPostAnnotationRegistry.java:26)
        at org.sifrproject.servlet.AnnotatorServlet.doPost(AnnotatorServlet.java:193)
        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)