[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();
     }