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/11/20 20:29:29 UTC

svn commit: r1640787 - in /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl: BinaryCasSerDes4.java BinaryCasSerDes6.java

Author: schor
Date: Thu Nov 20 19:29:29 2014
New Revision: 1640787

URL: http://svn.apache.org/r1640787
Log:
[UIMA-4100] for delta deserialization below the line updates, remove / readd to indices, per view, as needed.

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java?rev=1640787&r1=1640786&r2=1640787&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java Thu Nov 20 19:29:29 2014
@@ -1455,7 +1455,7 @@ public class BinaryCasSerDes4 {
    */
   private class Deserializer {
     
-    final private CASImpl cas;  // cas being serialized
+    final private CASImpl cas;  // cas being deserialized into
     final private DataInput deserIn;
 
     final private DataInputStream[] dataInputs = new DataInputStream[NBR_SLOT_KIND_ZIP_STREAMS];
@@ -2032,9 +2032,12 @@ public class BinaryCasSerDes4 {
       long vPrevModLong = 0;
       int iHeap;
       TypeInfo typeInfo;
+ 
 
 
       private void readModifiedFSs() throws IOException {
+        final List<FSIndexRepositoryImpl> toBeAddedRepos = new ArrayList<FSIndexRepositoryImpl>();
+
         final int modFSsLength = readVnumber(control_dis);
         iPrevHeap = 0;
                  
@@ -2053,7 +2056,11 @@ public class BinaryCasSerDes4 {
           if (typeInfo.isArray && (!typeInfo.isHeapStoredArray)) {
             readModifiedAuxHeap(numberOfModsInThisFs);
           } else {
+            // https://issues.apache.org/jira/browse/UIMA-4100
+            toBeAddedRepos.clear();
+            cas.removeFromCorruptableIndexAnyView(iHeap, toBeAddedRepos);
             readModifiedMainHeap(numberOfModsInThisFs);
+            cas.addBackRemovedFsToAppropViews(iHeap,  toBeAddedRepos);
           }
         }
       }

Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java?rev=1640787&r1=1640786&r2=1640787&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java Thu Nov 20 19:29:29 2014
@@ -314,7 +314,7 @@ public class BinaryCasSerDes6 {
   /*****************************************************
    *  Things for both serialization and Deserialization
    *****************************************************/
-  final private CASImpl cas;  // cas being serialized
+  final private CASImpl cas;  // cas being serialized or deserialized into
   private int[] heap;           // main heap, can't be final because grow replaces it
   final private StringHeap stringHeapObj;
   final private LongHeap longHeapObj;
@@ -2269,6 +2269,7 @@ public class BinaryCasSerDes6 {
 //      int[] srcNextSkippedIndex;
 
     private void readModifiedFSs() throws IOException {
+      final List<FSIndexRepositoryImpl> toBeAddedRepos = new ArrayList<FSIndexRepositoryImpl>();
       final int modFSsLength = readVnumber(control_dis);
       int prevSeq = 0;
       
@@ -2317,7 +2318,11 @@ public class BinaryCasSerDes6 {
            **************************************************/
            readModifiedAuxHeap(numberOfModsInThisFs);
         } else {
+          // https://issues.apache.org/jira/browse/UIMA-4100
+          toBeAddedRepos.clear();
+          cas.removeFromCorruptableIndexAnyView(iHeap, toBeAddedRepos);
           readModifiedMainHeap(numberOfModsInThisFs);
+          cas.addBackRemovedFsToAppropViews(iHeap,  toBeAddedRepos);       
         }
       }
     }