Author: schor
Date: Thu Jul 19 19:31:38 2018
New Revision: 1836296

URL: http://svn.apache.org/viewvc?rev=1836296&view=rev
Log:
[UIMA-5841]

Modified:
    
uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java

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=1836296&r1=1836295&r2=1836296&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
 Thu Jul 19 19:31:38 2018
@@ -19,6 +19,7 @@
 
 package org.apache.uima.cas.impl;
 
+import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -1255,6 +1256,7 @@ public class Subiterator<T extends Annot
   @Override
   public int size() {
     FSIterator<T> it2 = copy();
+    it2.moveToFirst();
     int sz = 0;
     while (it2.hasNext()) {
       sz++;
@@ -1264,13 +1266,15 @@ public class Subiterator<T extends Annot
   }
 
   @Override
-  public FeatureStructure[] getArray() {
+  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());
     }
-    return a.toArray(new FeatureStructure[a.size()]);
+    T[] r = (T[]) Array.newInstance(clazz, a.size());
+    return a.toArray(r);
   }
 
 //  /**


Reply via email to