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 2016/01/04 15:00:17 UTC
svn commit: r1722870 -
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
Author: schor
Date: Mon Jan 4 14:00:17 2016
New Revision: 1722870
URL: http://svn.apache.org/viewvc?rev=1722870&view=rev
Log:
[UIMA-4722] fix updateDocumentAnnotation corruption avoidance
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java?rev=1722870&r1=1722869&r2=1722870&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java Mon Jan 4 14:00:17 2016
@@ -2323,11 +2323,11 @@ public class CASImpl extends AbstractCas
}
if (jcasFieldRegistryIndex == Integer.MIN_VALUE) {
- if (!svd.featureCodesInIndexKeys.get(featCode)) {
+ if (!svd.featureCodesInIndexKeys.get(featCode)) { // skip if no index uses this feature
return false;
}
} else {
- if (!svd.featureJiInIndexKeys.get(jcasFieldRegistryIndex)) {
+ if (!svd.featureJiInIndexKeys.get(jcasFieldRegistryIndex)) { // skip if no index uses this feature
return false;
}
}
@@ -3413,10 +3413,12 @@ public class CASImpl extends AbstractCas
if (null != newDoc) {
Annotation docAnnot = getDocumentAnnotationNoCreate();
if (docAnnot != null) {
- boolean wasRemoved = this.indexRepository.removeIfInCorrputableIndexInThisView(docAnnot);
+ boolean wasRemoved = this.removeFromCorruptableIndexAnyViewSetCache(docAnnot, this.getAddbackSingle());
docAnnot.setIntValue(getTypeSystemImpl().endFeat, newDoc.length());
if (wasRemoved) {
- ((FSIndexRepositoryImpl)ll_getIndexRepository()).addback(docAnnot);
+ this.addbackSingle(docAnnot);
+ } else {
+ resetAddbackSingleInUse();
}
} else {
// not in the index (yet)
@@ -3865,15 +3867,15 @@ public class CASImpl extends AbstractCas
* @param addbacks
*/
void addbackModifiedFSs (FSsTobeAddedback addbacks) {
- final List<FSsTobeAddedback> s = svd.fssTobeAddedback;
- if (s.get(s.size() - 1) == addbacks) {
- s.remove(s.size());
+ final List<FSsTobeAddedback> listOfAddbackInfos = svd.fssTobeAddedback;
+ if (listOfAddbackInfos.get(listOfAddbackInfos.size() - 1) == addbacks) {
+ listOfAddbackInfos.remove(listOfAddbackInfos.size());
} else {
- int pos = s.indexOf(addbacks);
+ int pos = listOfAddbackInfos.indexOf(addbacks);
if (pos >= 0) {
- for (int i = s.size() - 1; i > pos; i--) {
- s.remove(i);
- s.get(i).addback();
+ for (int i = listOfAddbackInfos.size() - 1; i > pos; i--) {
+ FSsTobeAddedback toAddBack = listOfAddbackInfos.remove(i);
+ toAddBack.addback();
}
}
}