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 2014/12/12 16:58:47 UTC
svn commit: r1644942 - in
/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl:
FSsTobeAddedback.java XCASDeserializer.java XmiCasDeserializer.java
Author: schor
Date: Fri Dec 12 15:58:47 2014
New Revision: 1644942
URL: http://svn.apache.org/r1644942
Log:
[UIMA-4135] fix record and remove abstract methods, and add explicit protection for XCAS and XMI deserialization around updating DocumentAnnotation end.
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSsTobeAddedback.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSsTobeAddedback.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSsTobeAddedback.java?rev=1644942&r1=1644941&r2=1644942&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSsTobeAddedback.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSsTobeAddedback.java Fri Dec 12 15:58:47 2014
@@ -88,9 +88,21 @@ abstract class FSsTobeAddedback implemen
}
void recordRemove(FSIndexRepositoryImpl view) {throw new UnsupportedOperationException();}
- void recordRemove(FSIndexRepositoryImpl view, int count) {throw new UnsupportedOperationException();}
+ void recordRemove(FSIndexRepositoryImpl view, int count) {
+ if (count == 1) {
+ recordRemove(view);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
void recordRemove(int fsAddr, FSIndexRepositoryImpl view) {throw new UnsupportedOperationException();}
- void recordRemove(int fsAddr, FSIndexRepositoryImpl view, int count) {throw new UnsupportedOperationException();}
+ void recordRemove(int fsAddr, FSIndexRepositoryImpl view, int count) {
+ if (count == 1) {
+ recordRemove(fsAddr, view);
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
void addback() {throw new UnsupportedOperationException();}
void addback(int fsAddr) {throw new UnsupportedOperationException();}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java?rev=1644942&r1=1644941&r2=1644942&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java Fri Dec 12 15:58:47 2014
@@ -777,9 +777,21 @@ public class XCASDeserializer {
finalizeOutOfTypeSystemFeatures();
}
- for (int i = 0; i < views.size(); i++) {
- ((CASImpl) views.get(i)).updateDocumentAnnotation();
+ for (CAS view : views) {
+ AutoCloseable ac = view.protectIndices();
+ try {
+ ((CASImpl)view).updateDocumentAnnotation();
+ } finally {
+ try {
+ ac.close();
+ } catch (Exception e) {
+ assert(false);
+ }
+ }
}
+// for (int i = 0; i < views.size(); i++) {
+// ((CASImpl) views.get(i)).updateDocumentAnnotation();
+// }
}
private void finalizeFS(FSInfo fsInfo) {
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java?rev=1644942&r1=1644941&r2=1644942&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java Fri Dec 12 15:58:47 2014
@@ -1494,9 +1494,20 @@ public class XmiCasDeserializer {
// time = System.currentTimeMillis() - time;
// System.out.println("Done in " + new TimeSpan(time));
- for (int i = 0; i < views.size(); i++) {
- ((CASImpl) views.get(i)).updateDocumentAnnotation();
+
+ for (CAS view : views) {
+ AutoCloseable ac = view.protectIndices();
+ try {
+ ((CASImpl) view).updateDocumentAnnotation();
+ } finally {
+ try {
+ ac.close();
+ } catch (Exception e1) {
+ assert(false);
+ }
+ }
}
+
//check if disallowed fs encoutered]
if (this.disallowedViewMemberEncountered) {