[UIMA-5637] JCasUtil.selectAt has different meaning than expected
- Replace && with || to fix the bug
- Extended unit test to cover the the problematic case
git-svn-id: https://svn.apache.org/repos/asf/uima/uimafit/trunk@1814770 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/uimafit-core/src/main/java/org/apache/uima/fit/util/CasUtil.java b/uimafit-core/src/main/java/org/apache/uima/fit/util/CasUtil.java
index bd2e3f9..869faee 100644
--- a/uimafit-core/src/main/java/org/apache/uima/fit/util/CasUtil.java
+++ b/uimafit-core/src/main/java/org/apache/uima/fit/util/CasUtil.java
@@ -299,7 +299,7 @@
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) {
+ if (a.getBegin() != aBegin || a.getEnd() != aEnd) {
break;
}
it.moveToNext();
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
index becbd21..1984210 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
@@ -828,12 +828,13 @@
Token a = new Token(this.jCas, 0, 1);
Token b = new Token(this.jCas, 2, 3);
Token bc = new Token(this.jCas, 2, 5);
- Token c = new Token(this.jCas, 4, 5);
- Token c1 = new Token(this.jCas, 4, 5);
- Token d = new Token(this.jCas, 4, 7);
- Token cd = new Token(this.jCas, 6, 7);
- Token e = new Token(this.jCas, 8, 9);
- for (Token token : Arrays.asList(a, b, bc, c, c1, d, cd, e)) {
+ Token c = new Token(this.jCas, 4, 6);
+ Token c1 = new Token(this.jCas, 4, 6);
+ Token d = new Token(this.jCas, 4, 5);
+ Token e = new Token(this.jCas, 4, 7);
+ Token cde = new Token(this.jCas, 6, 7);
+ Token f = new Token(this.jCas, 8, 9);
+ for (Token token : Arrays.asList(a, b, bc, c, c1, d, e, cde, e, f)) {
token.addToIndexes();
}
@@ -852,12 +853,13 @@
Token a = new Token(this.jCas, 0, 1);
Token b = new Token(this.jCas, 2, 3);
Token bc = new Token(this.jCas, 2, 5);
- Token c = new Token(this.jCas, 4, 5);
- Token c1 = new Token(this.jCas, 4, 5);
- Token d = new Token(this.jCas, 4, 7);
- Token cd = new Token(this.jCas, 6, 7);
- Token e = new Token(this.jCas, 8, 9);
- for (Token token : Arrays.asList(a, b, bc, c, c1, d, cd, e)) {
+ Token c = new Token(this.jCas, 4, 6);
+ Token c1 = new Token(this.jCas, 4, 6);
+ Token d = new Token(this.jCas, 4, 5);
+ Token e = new Token(this.jCas, 4, 7);
+ Token cde = new Token(this.jCas, 6, 7);
+ Token f = new Token(this.jCas, 8, 9);
+ for (Token token : Arrays.asList(a, b, bc, c, c1, d, e, cde, e, f)) {
token.addToIndexes();
}