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

JCasUtil.selectAt has different meaning than expected

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.3.0uimaFIT
    • Fix Version/s: 2.4.0uimaFIT
    • Component/s: uimaFIT
    • Labels:
      None

      Description

      I was wondering what exactly the semantics of JCasUtil.selectAt is supposed to be after looking into the implementation, since the JavaDoc isn’t very precise. I initially thought that it would select annotations of the given type with the exact begin and end, but this is not the case when inspecting the implementation. The problem is in CasUtil.selectAt with the following while loop:

      while (it.isValid()) {
      AnnotationFS a = it.get();
      // If the offsets do not match the specified offets, we're done
      if (a.getBegin() != aBegin && a.getEnd() != aEnd)

      { break; }

      it.moveToNext();
      list.add(a);
      }

      I would have expected that either begin or end must be different to drop the item, i.e. "if (a.getBegin() != aBegin || a.getEnd() != aEnd)" instead. This is obviously not the case, and it does not have the same behaviour like selectCovered either, so what is the intend if it’s not a bug?

        Attachments

          Activity

            People

            • Assignee:
              rec Richard Eckart de Castilho
              Reporter:
              mjuric Mario Juric
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: