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 2018/07/19 19:31:38 UTC

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

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);
   }
 
 //  /**