That's a bug. The underlying implementation of the two iterator types you mention is totally different, hence you see this only in one of them. Any chance you could provide a self-contained test case that exhibits this?
--Thilo Philip Ogren wrote: > > I am having difficulty with using the FSIterator returned by the > AnnotationIndex.subiterator(AnnotationFS) method. > The following is a code fragment: > > AnnotationIndex annotationIndex = jCas.getAnnotationIndex(tokenType); > FSIterator tokenIterator = annotationIndex.subiterator(sentenceAnnotation); > annotationIterator.moveTo(tokenAnnotation); > > > Here is the relevant portion of the stack trace: > > java.lang.ClassCastException: edu.colorado.cslr.dessert.types.Token > at java.util.Collections.indexedBinarySearch(Unknown Source) > at java.util.Collections.binarySearch(Unknown Source) > at org.apache.uima.cas.impl.Subiterator.moveTo(Subiterator.java:224) > > > If I change the second line to the following, then I do not have any > problems with an exception being thrown. > > FSIterator tokenIterator = annotationIndex.iterator(); > > > Is this a bug or some misunderstanding on my part of how subiterator > should work? > > Thanks, > Philip