Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-4517

fixing ArrayOutOfBounds exception when parsing invalid Ruta script

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3.1ruta
    • Fix Version/s: 2.3.1ruta
    • Component/s: Ruta
    • Labels:
      None

      Description

      looking for more informative exception messages when parsing invalid Ruta script

      When using Ruta in a non-Workbench setup (in my case, Maven), I don't manage to catch Ruta script errors in a meaningful way. Here is an example:

      "aaa\." -> MyAnnotation; // fails because of escaped dot

      The thrown error is quite uninformative:

      java.lang.ArrayIndexOutOfBoundsException: -1
      at org.apache.uima.ruta.parser.RutaParser.emitErrorMessage(RutaParser.java:365)
      at org.apache.uima.ruta.parser.RutaParser.reportError(RutaParser.java:386)
      at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:603)
      at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
      at org.apache.uima.ruta.parser.RutaParser.file_input(RutaParser.java:680)
      at org.apache.uima.ruta.engine.RutaEngine.loadScript(RutaEngine.java:1058)
      at org.apache.uima.ruta.engine.RutaEngine.initializeScript(RutaEngine.java:743)
      ...

      Here is the code to reproduce: https://github.com/renaud/annotate_ruta_example/tree/ruta_error_message

      However, if I paste that script line in the Ruta Workbench, it nicely underlines it in red at the exact location, and even says "Mismatched input". How do I achieve the same programatically (from Java)?

        Attachments

        1. RutaParser.diff
          2 kB
          Renaud Richardet
        2. RutaParser2.diff
          4 kB
          Renaud Richardet
        3. RutaParseRuntimeException.java
          0.4 kB
          Renaud Richardet

          Activity

            People

            • Assignee:
              pkluegl Peter Klügl
              Reporter:
              renaudrichardet Renaud Richardet
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: