Dear Thilo,
> we'll need more information to be able to help,
> the stack trace of the exception for one.
Here is the stack trace :
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
java.lang.String.substring(String.java:1932)
org.apache.uima.jcas.tcas.Annotation.getCoveredText(Annotation.java:119)
org.apache.uima.simpleserver.ResultExtractor.makeOutputs(ResultExtractor.java:176)
org.apache.uima.simpleserver.ResultExtractor.outputAll(ResultExtractor.java:158)
org.apache.uima.simpleserver.ResultExtractor.processTypes(ResultExtractor.java:111)
org.apache.uima.simpleserver.ResultExtractor.getResult(ResultExtractor.java:105)
org.apache.uima.simpleserver.Service.process(Service.java:262)
org.apache.uima.simpleserver.servlet.SimpleServerServlet.analyze(SimpleServerServlet.java:204)
org.apache.uima.simpleserver.servlet.SimpleServerServlet.doPost(SimpleServerServlet.java:183)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> Also,
> I do not understand what you mean when you say
> "I am trying to set the spans for a jCas".
Of course. I realized my error once I had already sent the email, so
it was rather late to change it. What I meant to say is that I am
trying to set the spans of *an annotation* that is found inside a
JCas. So here is the piece code which causes me headaches:
String docText = aJCas.getDocumentText();
String[] splittedLine = line.split(":");
int start = Integer.parseInt(splittedLine[0]) - 1;
if (start >= docText.length()) start = docText.length() - 1;
int end = Integer.parseInt(splittedLine[1]) - 1;
if (end >= docText.length()) end = docText.length() - 1;
NemesisNE annotationNemesis = new NemesisNE(aJCas);
annotationNemesis.setBegin(start);
annotationNemesis.setEnd(end);
// adition of other attributes to annotationNemesis
annotationNemesis.addToIndexes();
where the variable line is a ":" separated String whose first element
is the span start of the annotation that I am currently treating and
second element is the span end of the annotation that I am currently
treating. In addition NemesisNE is a class that I have defined in the
Type System.
The above piece of code works fine if run, for example, via the
cpeGui, but throws the aforementioned exception if deployed as a WS.
If I run the following code :
String docText = aJCas.getDocumentText();
String[] splittedLine = line.split(":");
//int start = Integer.parseInt(splittedLine[0]) - 1;
//if (start >= docText.length()) start = docText.length() - 1;
//int end = Integer.parseInt(splittedLine[1]) - 1;
//if (end >= docText.length()) end = docText.length() - 1;
NemesisNE annotationNemesis = new NemesisNE(aJCas);
//annotationNemesis.setBegin(start);
//annotationNemesis.setEnd(end);
// adition of other attributes to annotationNemesis
annotationNemesis.addToIndexes();
then everything runs just fine as both a WS and a normal application.
The problem is that in this case the spans are both 0.
If there is any other kind of information that I could provide either
to you Thilo or somebody else I would be happy to do it.
Again, thanks ( in advance :) )
Stergos.