Author: schor Date: Wed Jul 25 15:31:09 2018 New Revision: 1836641 URL: http://svn.apache.org/viewvc?rev=1836641&view=rev Log: [UIMA-5844] fix select, rename getArray to getArrayList for iterators, change the definition to start from current position, and use the iterator itself.
Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java Wed Jul 25 15:31:09 2018 @@ -316,7 +316,10 @@ public interface FSIterator<T extends Fe /** * return the size of the collection being iterated over, if available. - * This may be inefficient to compute + * Because the iterator can move forwards and backwards, the size is the + * total size that the iterator would iterate over, starting at the first element + * thru the last element. + * This may be inefficient to compute. * @return the size of the collection being iterated over. */ default int size() { Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java Wed Jul 25 15:31:09 2018 @@ -104,7 +104,7 @@ class FilteredIterator<T extends Feature /** * @see org.apache.uima.cas.FSIterator#copy() */ - public FSIterator<T> copy() { + public FilteredIterator<T> copy() { return new FilteredIterator<T>(this.it.copy(), this.cons); } @@ -164,17 +164,6 @@ class FilteredIterator<T extends Feature return count; } - @Override - public T[] getArray(Class<? super T> clazz) { - FilteredIterator<T> it2 = new FilteredIterator<T>(it, cons); - ArrayList<FeatureStructure> items = new ArrayList<>(); - while (it2.hasNext()) { - items.add(it2.nextNvc()); - } - T[] r = (T[]) Array.newInstance(clazz, items.size()); - return items.toArray(r); - } - // /* (non-Javadoc) // * @see org.apache.uima.cas.impl.FSIteratorImplBase#moveTo(java.util.Comparator) // */ Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_backwards.java Wed Jul 25 15:31:09 2018 @@ -36,7 +36,7 @@ class FsIterator_backwards<T extends Fea FsIterator_backwards(FSIterator<T> iterator) { this.it = (LowLevelIterator<T>) iterator; - it.moveToLast(); + it.moveToLast(); // will act like move to first } @Override @@ -145,18 +145,4 @@ class FsIterator_backwards<T extends Fea return it.size(); } - @Override - public T[] getArray(Class<? super T> clazz) { - T[] a = it.getArray(clazz); - int len = a.length; - int len2 = len >> 1; - int len1 = len - 1; - for (int i = 0, i2 = len1; i < len2; i++, i2--) { - T t = a[i]; - a[i] = a[i2]; - a[i2] = t; - } - return a; - } - } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java Wed Jul 25 15:31:09 2018 @@ -20,6 +20,7 @@ package org.apache.uima.cas.impl; import java.lang.reflect.Array; +import java.util.ArrayList; import java.util.Comparator; import java.util.concurrent.atomic.AtomicInteger; @@ -185,12 +186,6 @@ class FsIterator_bag<T extends FeatureSt return null; // not used for bag } - @Override - public T[] getArray(Class<? super T> clazz) { - T[] a = (T[]) Array.newInstance(clazz, size()); - bag.copyToArray(a, 0); - return a; - } } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_limited.java Wed Jul 25 15:31:09 2018 @@ -141,14 +141,4 @@ class FsIterator_limited<T extends Featu public int size() { return Math.min(limit, iterator.size()); } - - @Override - public T[] getArray(Class<? super T> clazz) { - T[] a = iterator.getArray(clazz); - if (a.length > limit) { - return Arrays.copyOf(a, limit); - } - return a; - } - } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_multiple_indexes.java Wed Jul 25 15:31:09 2018 @@ -192,18 +192,5 @@ public abstract class FsIterator_multipl ? main_idx : ((LowLevelIterator<T>)allIterators[0]).ll_getIndex()); } - - @Override - public T[] getArray(Class<? super T> clazz) { - T[] a = (T[]) Array.newInstance(clazz, size()); - int destPos = 0; - for (LowLevelIterator<T> it : nonEmptyIterators) { - T[] p = it.getArray(clazz); - System.arraycopy(p, 0, a, destPos, p.length); - destPos += p.length; - } - return a; - } - } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted2.java Wed Jul 25 15:31:09 2018 @@ -20,6 +20,7 @@ package org.apache.uima.cas.impl; import java.lang.reflect.Array; +import java.util.ArrayList; import java.util.Comparator; import org.apache.uima.cas.FeatureStructure; @@ -300,13 +301,6 @@ class FsIterator_set_sorted2<T extends F return this.ll_getIndex().isSorted(); } - @Override - public T[] getArray(Class<? super T> clazz) { - T[] a = (T[]) Array.newInstance(clazz, size()); - this.ofsa.copyToArray(a, 0); - return a; - } - // @Override // protected int getModificationCountFromIndex() { // return ofsa.getModificationCount(); Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java Wed Jul 25 15:31:09 2018 @@ -19,6 +19,8 @@ package org.apache.uima.cas.impl; +import java.util.ArrayList; + import org.apache.uima.cas.FeatureStructure; import org.apache.uima.cas.Type; Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java Wed Jul 25 15:31:09 2018 @@ -259,12 +259,5 @@ public class FsIterator_subtypes_snapsho @Override public Comparator<TOP> getComparator() { return comparatorMaybeNoTypeWithoutId; - } - - - @Override - public T[] getArray(Class<? super T> clazz) { - return snapshot; - } - + } } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java Wed Jul 25 15:31:09 2018 @@ -19,6 +19,7 @@ package org.apache.uima.cas.impl; +import java.util.ArrayList; import java.util.Comparator; import java.util.NoSuchElementException; @@ -173,11 +174,15 @@ public interface LowLevelIterator<T exte default boolean isMoveToSupported() { return false; } /** - * @return an array representing the collection of items the iterator would return + * @param arrayList updated by adding elements representing the collection of items the iterator would return + * from its current position to the end + * + * NOTE: This operation will move the iterator from its current position to the end. */ - default T[] getArray(Class<? super T> clazz) { - throw new UnsupportedOperationException(); + default void getArrayList(ArrayList<? super T> arrayList) { + while (isValid()) { + arrayList.add(nextNvc()); + } } - } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator_empty.java Wed Jul 25 15:31:09 2018 @@ -62,7 +62,5 @@ public class LowLevelIterator_empty<T ex @Override public Comparator<TOP> getComparator() { return null; } @Override - public T[] getArray(Class<? super T> clazz) { return (T[]) Array.newInstance(clazz, 0); } - @Override public Type getType() { return TypeSystemImpl.staticTsi.getTopType(); } } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/SelectFSs_impl.java Wed Jul 25 15:31:09 2018 @@ -567,21 +567,9 @@ public class SelectFSs_impl <T extends F } private void incr(FSIterator<T> it) { - if (isBackwards) { - it.moveToPrevious(); - } else { - it.moveToNext(); - } + it.moveToNext(); } -// private void decr(FSIterator<T> it) { -// if (isBackwards) { -// it.moveToNext(); -// } else { -// it.moveToPrevious(); -// } -// } -// /********************************* * terminal operations * returning other than SelectFSs @@ -626,8 +614,7 @@ public class SelectFSs_impl <T extends F if (isPreceding) { boolean bkwd = isBackwards; // save isBackwards flag. - // since preceding normally operates backwards, if this flag is set - // the user wants to operate "forwards" + isBackwards = true; // because need the iterator to move from the position to the front. return make_or_copy_snapshot(fsIterator1(), bkwd); // this iterator fails to skip annotations whose end is > positioning begin // LowLevelIterator<T> baseIterator = fsIterator1(); // this iterator fails to skip annotations whose end is > positioning begin @@ -678,8 +665,8 @@ public class SelectFSs_impl <T extends F : plainFsIterator(index, view); it = maybeWrapBackwards(it); - maybePosition(it); - maybeShift(it); + maybePosition(it); // position needs to come after backwards because that sets the position + maybeShift(it); // shift semantically needs to come after backwards return (limit == -1) ? it : new FsIterator_limited<>(it, limit); } @@ -803,8 +790,8 @@ public class SelectFSs_impl <T extends F private LowLevelIterator<T> maybeWrapBackwards(LowLevelIterator<T> it) { if (isBackwards) { - it = new FsIterator_backwards<>(it); - it.moveToFirst(); + it = new FsIterator_backwards<>(it); // positions the underlying iterator to last, + // which is first for going backwards } return it; } @@ -877,23 +864,14 @@ public class SelectFSs_impl <T extends F * */ @Override - public List<T> asList() { - - return new AbstractList<T>() { - - private final T[] a = asArray((LowLevelIterator<T>) fsIterator()); - - @Override - public T get(int i) { - return a[i]; - } - - @Override - public int size() { - return a.length; - } - }; - + public ArrayList<T> asList() { + return asArrayList((LowLevelIterator<T>) fsIterator()); + } + + private ArrayList<T> asArrayList(LowLevelIterator<T> it) { + ArrayList<T> al = new ArrayList<>(); + it.getArrayList(al); + return al; } /* (non-Javadoc) @@ -904,13 +882,26 @@ public class SelectFSs_impl <T extends F return asArray((LowLevelIterator<T>)fsIterator(), clazz); } + /** + * This is a terminal operation, so can use/modify the original iterator + * @param it the iterator positioned at the start position + * @param clazz the class of the result + * @return an array of elements from the position to the end + */ private T[] asArray(LowLevelIterator<T> it, Class<? super T> clazz) { - return ((LowLevelIterator<T>)it).getArray(clazz); - } + // can't use the iterator's getArray method, because that returns the entire + // array, starting from the first position thru the last position, + // and the iterator might have been positioned other than the starting spot + // by a following or startAt etc. - private T[] asArray(LowLevelIterator<T> it) { - return asArray(it, (Class<? super T>) ((TypeImpl)it.getType()).javaClass); + ArrayList<T> a = asArrayList(it); + T[] r = (T[]) Array.newInstance(clazz, a.size()); + return a.toArray(r); } + +// private T[] asArray(LowLevelIterator<T> it) { +// return asArray(it, (Class<? super T>) ((TypeImpl)it.getType()).javaClass); +// } private Annotation makePosAnnot(int begin, int end) { Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java Wed Jul 25 15:31:09 2018 @@ -1265,18 +1265,6 @@ public class Subiterator<T extends Annot return sz; } - @Override - public T[] getArray(Class<? super T> clazz) { - FSIterator<T> it2 = copy(); - it2.moveToFirst(); - ArrayList<FeatureStructure> a = new ArrayList<>(); - while (it2.hasNext()) { - a.add(it2.nextNvc()); - } - T[] r = (T[]) Array.newInstance(clazz, a.size()); - return a.toArray(r); - } - // /** // * Simple implementation: // * move to leftmost, then Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SelectFsTest.java Wed Jul 25 15:31:09 2018 @@ -24,6 +24,7 @@ import static org.junit.Assert.assertFal import static org.junit.Assert.assertTrue; import java.io.File; +import java.lang.reflect.Array; import java.util.Arrays; import java.util.Iterator; import java.util.List; @@ -177,4 +178,46 @@ public class SelectFsTest { assertTrue(jcas.select(Token.class).isEmpty()); } + + @Test + public void testSelectFollowingPrecedingDifferentTypes() { + + JCas jCas = cas.getJCas(); + jCas.setDocumentText("A B C D E"); + Token a = new Token(jCas, 0, 1); + Token b = new Token(jCas, 2, 3); + Token c = new Token(jCas, 4, 5); + Token d = new Token(jCas, 6, 7); + Token e = new Token(jCas, 8, 9); + for (Token token : Arrays.asList(a, b, c, d, e)) { + token.addToIndexes(); + } + Sentence sentence = new Sentence(jCas, 2, 5); + sentence.addToIndexes(); + + // uimaFIT: selectFollowing(this.jCas, Token.class, sentence, 1); + + List<Token> following1 = jCas.select(Token.class).following(sentence).limit(1).asList(); +// assertEquals(Arrays.asList("D"), JCasUtil.toText(following1)); + assertEquals(Arrays.asList(d), following1); + + Sentence s2 = new Sentence(jCas, 4, 5); + Token[] prec1 = jCas.select(Token.class).preceding(s2).asArray(Token.class); + assertEquals(2, prec1.length); + assertTrue(Arrays.equals(new Token[] {a, b}, prec1)); + + List<Token> prec2 =jCas.select(Token.class).preceding(s2).backwards().asList(); + assertEquals(Arrays.asList(b, a), prec2); + + prec2 =jCas.select(Token.class).preceding(s2).backwards().shifted(1).asList(); + assertEquals(Arrays.asList(a), prec2); + + prec2 =jCas.select(Token.class).following(sentence).shifted(1).asList(); + assertEquals(Arrays.asList(e), prec2); + + prec2 =jCas.select(Token.class).following(sentence).shifted(-1).asList(); + assertEquals(Arrays.asList(c, d, e), prec2); + + + } } Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java?rev=1836641&r1=1836640&r2=1836641&view=diff ============================================================================== --- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java (original) +++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTtest.java Wed Jul 25 15:31:09 2018 @@ -31,7 +31,7 @@ public class IntArrayRBTtest extends Tes private final static int NIL = 0; static final Random rand = new Random(); static { -// long seed = -585739628489294672L; +// long seed = 7853174522311867210L; long seed = rand.nextLong(); rand.setSeed(seed); System.out.println("IntArrayRBTtest seed is " + seed);