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