You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2016/08/29 13:59:31 UTC

svn commit: r1758232 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src: main/java/org/apache/uima/cas/impl/FsIndex_annotation.java main/java/org/apache/uima/cas/impl/Subiterator.java test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java

Author: schor
Date: Mon Aug 29 13:59:31 2016
New Revision: 1758232

URL: http://svn.apache.org/viewvc?rev=1758232&view=rev
Log:
[UIMA-5063] Merge from trunk

Modified:
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_annotation.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
    uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java   (contents, props changed)

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_annotation.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_annotation.java?rev=1758232&r1=1758231&r2=1758232&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_annotation.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_annotation.java Mon Aug 29 13:59:31 2016
@@ -49,7 +49,7 @@ public class FsIndex_annotation <T exten
       return iterator();
     }
     // return non-constrained, non-strict, unambiguous iterator
-    boolean strict = true;
+    boolean strict = false;  // https://issues.apache.org/jira/browse/UIMA-5063
     boolean isBounded = false;
     return (FSIterator<T>) new Subiterator<T>(iterator(), 
                               null, 

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java?rev=1758232&r1=1758231&r2=1758232&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java Mon Aug 29 13:59:31 2016
@@ -332,7 +332,8 @@ public class Subiterator<T extends Annot
     }
 
     adjustForStrictForward();
-    if (it.isValid() && (it.get().getBegin() > boundingEnd)) {
+    // stop in bounded case if out of bounds going forwards UIMA-5063
+    if (isBounded && it.isValid() && (it.get().getBegin() > boundingEnd)) { 
       it.moveToLast();
       it.moveToNext();  // mark invalid
     } else {
@@ -354,7 +355,7 @@ public class Subiterator<T extends Annot
     }
 
     adjustForStrictForward();
-    if (it.isValid() && (it.getNvc().getBegin() > boundingEnd)) {
+    if (isBounded && it.isValid() && (it.getNvc().getBegin() > boundingEnd)) {
       it.moveToLast();
       it.moveToNext();  // mark invalid
     } else {
@@ -383,8 +384,8 @@ public class Subiterator<T extends Annot
       --this.pos;
       return;
     }
-    
-    if (isValid() && it.get()._id() == startId) {
+    // stop in bounded case if out of bounds going backwards UIMA-5063
+    if (isBounded && isValid() && it.get()._id() == startId) {
       it.moveToFirst();
       it.moveToPrevious();  // make it invalid
     } else {

Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java?rev=1758232&r1=1758231&r2=1758232&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java Mon Aug 29 13:59:31 2016
@@ -153,6 +153,8 @@ public class AnnotationIteratorTest exte
   }
 
   public void testIterator1() {
+    
+    
 //   Tokens                +---+
 //                        +---+
 //                       +---+
@@ -165,6 +167,7 @@ public class AnnotationIteratorTest exte
 //   bound4strict                   +------------------+            
 //   sentence4strict                 +-----------------------------+
     
+    
     try {
       this.cas.setDocumentText(text);
     } catch (CASRuntimeException e) {
@@ -188,6 +191,11 @@ public class AnnotationIteratorTest exte
     // for (int i = 0; i < text.length() - 5; i++) {
     // cas.getIndexRepository().addFS(cas.createAnnotation(tokenType, i, i+5));
     // }
+    
+    // create overlapping sentences for unambigious testing
+    //   begin =  0,  5, 10, ...
+    //   end   = 10, 15, 20, ...
+    // non-overlapping:  0-10, 10-20, etc.
     for (int i = 0; i < text.length() - 10; i += 5) {
       ++annotCount;
       ir.addFS(fs = this.cas.createAnnotation(this.sentenceType, i, i + 10));
@@ -261,7 +269,10 @@ public class AnnotationIteratorTest exte
     assertCount("Normal ambiguous annot iterator", annotCount, it);
     
     it = annotIndex.iterator(false);  // false means create an unambiguous iterator
-    assertCount("Unambiguous annot iterator", 1, it);  // because of document Annotation
+    assertCount("Unambiguous annot iterator", 1, it);  // because of document Annotation - spans the whole range
+    
+    it = sentIndex.iterator(false);  //  false means create an unambiguous iterator
+    assertCount("Unambigous sentence iterator", 5, it);
     
     AnnotationFS bigBound = this.cas.createAnnotation(this.sentenceType, 10, 41);
     it = annotIndex.subiterator(bigBound, true, true);  // ambiguous, and strict

Propchange: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Aug 29 13:59:31 2016
@@ -0,0 +1,7 @@
+/incubator/uima/uimaj/branches/mavenAlign/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:932400-933272
+/uima/uimaj/branches/2.6.0-json/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:1616936-1617592
+/uima/uimaj/branches/depend-on-july-9-build-tools/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:963167-964468
+/uima/uimaj/branches/depend-on-parent-pom-4/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:961329-961745
+/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:1436573-1462257
+/uima/uimaj/branches/mavenAlign/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:933273-944396
+/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/AnnotationIteratorTest.java:1690273-1758231