Renaud Richardet created UIMA-4517:
--------------------------------------
Summary: fixing ArrayOutOfBounds exception when parsing invalid
Ruta script
Key: UIMA-4517
URL: https://issues.apache.org/jira/browse/UIMA-4517
Project: UIMA
Issue Type: Bug
Components: ruta
Affects Versions: 2.3.1ruta
Reporter: Renaud Richardet
Priority: Minor
Fix For: 2.3.1ruta
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)?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)