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 2015/02/18 20:24:27 UTC

svn commit: r1660703 - /uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml

Author: schor
Date: Wed Feb 18 19:24:27 2015
New Revision: 1660703

URL: http://svn.apache.org/r1660703
Log:
no Jira - clarify that iterators may get ConcurrentModificationException due to the automatic prevention of index corruption.

Modified:
    uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml

Modified: uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml?rev=1660703&r1=1660702&r2=1660703&view=diff
==============================================================================
--- uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml (original)
+++ uima/uimaj/trunk/uima-docbook-references/src/docbook/ref.cas.xml Wed Feb 18 19:24:27 2015
@@ -840,7 +840,15 @@ aPerson.setStringValue(lastNameFeature,
       <quote>reset</quote> this condition, such as moving to beginning, end, or moving to a
       particular feature structure. So - if you have to modify the index, you can move it back to
       the last FS you had retrieved from the iterator, and then continue, if that makes sense in
-      your application.</para>   
+      your application.</para>
+      
+    <para>Feature structures being iterated over should not have features which are used as the "keys" of an index, updated.
+    If this is done, UIMA, to prevent index corruption, will recover by automatically removing the FS from the indexes, 
+    updating the field, and adding the FS back to the index.  This recovery operation, because it updates the index, 
+    will make the iterator throw a ConcurrentModificationException if the iterator is incremented or decremented;
+    this exception will likely be unexpected because because it is hidden and automatic.  
+    If you must do this kind of operation, consider using Snapshot iterators (see next),
+    which don't throw ConcurrentModificationException.</para>   
       
     <para>As of version 2.7.0, a new method on FSIndex, <code>withSnapshotIterators(),</code> 
     allows creating a light-weight FSIndex based on the original FSIndex