svn commit: r1742313 - in /uima/uimaj/trunk/uimaj-core/src/test/java: aa/Root.java aa/Root_Type.java org/apache/uima/jcas/test/CASTestSetup.java org/apache/uima/jcas/test/JCasTest.java org/apache/uima

2016-05-04 Thread schor
Author: schor
Date: Wed May  4 18:12:40 2016
New Revision: 1742313

URL: http://svn.apache.org/viewvc?rev=1742313&view=rev
Log:
no Jira - add tests to cover float, double, and arrays of these

Modified:
uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root.java
uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root_Type.java

uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/CASTestSetup.java

uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java

uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/jcas/test/generatedx.xml

Modified: uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root.java?rev=1742313&r1=1742312&r2=1742313&view=diff
==
--- uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/aa/Root.java Wed May  4 18:12:40 
2016
@@ -17,417 +17,471 @@
  * under the License.
  */
 
+
+/* First created by JCasGen Wed May 04 13:57:58 EDT 2016 */
 package aa;
 
-import org.apache.uima.jcas.JCas;
+import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCasRegistry;
+import org.apache.uima.jcas.cas.TOP_Type;
+
 import org.apache.uima.jcas.cas.FSArray;
-import org.apache.uima.jcas.cas.FloatArray;
+import org.apache.uima.jcas.cas.LongArray;
 import org.apache.uima.jcas.cas.IntegerArray;
-import org.apache.uima.jcas.cas.StringArray;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.jcas.cas.TOP_Type;
+import org.apache.uima.jcas.cas.DoubleArray;
+import org.apache.uima.jcas.cas.FloatArray;
+import org.apache.uima.jcas.cas.StringArray;
 
-/**
- * Updated by JCasGen Tue Feb 21 14:56:04 EST 2006 XML source:
- * C:/a/Eclipse/3.1/j4/jedii_jcas_tests/testTypes.xml
- * 
- * @generated
- */
+
+/** 
+ * Updated by JCasGen Wed May 04 13:57:58 EDT 2016
+ * XML source: 
C:/au/svnCheckouts/trunk/uimaj280/uimaj/uimaj-core/src/test/java/org/apache/uima/jcas/test/generatedx.xml
+ * @generated */
 public class Root extends TOP {
-  /**
-   * @generated
-   * @ordered
+  /** @generated
+   * @ordered 
*/
-  public final static int typeIndexID = 
org.apache.uima.jcas.JCasRegistry.register(Root.class);
-
-  /**
-   * @generated
-   * @ordered
+  @SuppressWarnings ("hiding")
+  public final static int typeIndexID = JCasRegistry.register(Root.class);
+  /** @generated
+   * @ordered 
*/
+  @SuppressWarnings ("hiding")
   public final static int type = typeIndexID;
-
-  /** @generated */
-  public int getTypeIndexID() {
-return typeIndexID;
-  }
-
-  /**
-   * Never called. Disable default constructor
-   * 
-   * @generated
+  /** @generated
+   * @return index of the type  
*/
-  protected Root() {
-  }
-
-  /**
-   * Internal - constructor used by generator
-   * 
+  @Override
+  public  int getTypeIndexID() {return typeIndexID;}
+ 
+  /** Never called.  Disable default constructor
+   * @generated */
+  protected Root() {/* intentionally empty block */}
+
+  /** Internal - constructor used by generator 
* @generated
+   * @param addr low level Feature Structure reference
+   * @param type the type of this Feature Structure 
*/
   public Root(int addr, TOP_Type type) {
 super(addr, type);
 readObject();
   }
-
-  /** @generated */
+  
+  /** @generated
+   * @param jcas JCas to which this Feature Structure belongs 
+   */
   public Root(JCas jcas) {
 super(jcas);
-readObject();
-  }
-
-  /**
-   *  Write your own initialization here 
-   * 
-   * @generated modifiable
-   */
-  private void readObject() {
-  }
+readObject();   
+  } 
 
-  // *--*
-  // * Feature: arrayInt
+  /** 
+   * 
+   * Write your own initialization here
+   * 
+   *
+   * @generated modifiable 
+   */
+  private void readObject() {/*default - does nothing empty block */}
+ 
+ 
+
+  //*--*
+  //* Feature: arrayInt
 
-  /**
-   * getter for arrayInt - gets
-   * 
+  /** getter for arrayInt - gets 
* @generated
+   * @return value of the feature 
*/
   public IntegerArray getArrayInt() {
-if (Root_Type.featOkTst && ((Root_Type) jcasType).casFeat_arrayInt == null)
-  this.jcasType.jcas.throwFeatMissing("arrayInt", "aa.Root");
-return (IntegerArray) 
(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr,
-((Root_Type) jcasType).casFeatCode_arrayInt)));
-  }
-
-  /**
-   * setter for arrayInt - sets
-   * 
+if (Root_Type.featOkTst && ((Root_Type)jcasType).casFeat_arrayInt == null)
+  jcasType.jcas.throwFeatMissing("arrayInt", "aa.Root");
+return 
(IntegerArray)(jcasType.ll_cas.ll_getFSForRef(jcasType.ll_cas.ll_getRefValue(addr,
 ((Root_Type)jcasType).casFeatCode_arrayInt)));}
+
+  /** setter for arrayInt - sets  

svn commit: r1742314 - /uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

2016-05-04 Thread schor
Author: schor
Date: Wed May  4 18:18:57 2016
New Revision: 1742314

URL: http://svn.apache.org/viewvc?rev=1742314&view=rev
Log:
no Jira - add test for low level set int value

Modified:

uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

Modified: 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java?rev=1742314&r1=1742313&r2=1742314&view=diff
==
--- 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 Wed May  4 18:18:57 2016
@@ -28,8 +28,11 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.FeatureImpl;
+import org.apache.uima.cas.impl.FeatureStructureImpl;
 import org.apache.uima.cas.impl.LowLevelCAS;
 import org.apache.uima.cas.impl.LowLevelTypeSystem;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.cas.text.AnnotationFS;
 
 /**
@@ -262,6 +265,16 @@ public class FeatureStructureTest extend
testString = "";
token.setStringValue(this.lemmaFeat, testString);

assertTrue(token.getStringValue(this.lemmaFeat).equals(testString));
+   
+// test low level
+LowLevelCAS llcas = cas.getLowLevelCAS();
+token.setFeatureValue(tokenTypeFeat, word);
+int fsRef = ((FeatureStructureImpl)token).getAddress();
+int fc = ((FeatureImpl)tokenTypeFeat).getCode();
+assertEquals(llcas.ll_getIntValue(fsRef, fc), word.hashCode());
+FeatureStructureImpl word2 = cas.createFS(wordType);
+llcas.ll_setIntValue(fsRef, fc, word2.hashCode());
+assertEquals(token.getFeatureValue(tokenTypeFeat), word2);
}
 
public void testSetFloatValue() {




svn commit: r1742428 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java

2016-05-05 Thread schor
Author: schor
Date: Thu May  5 13:47:03 2016
New Revision: 1742428

URL: http://svn.apache.org/viewvc?rev=1742428&view=rev
Log:
[UIMA-4915] don't try to enqueue null items

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java?rev=1742428&r1=1742427&r2=1742428&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
 Thu May  5 13:47:03 2016
@@ -835,7 +835,9 @@ public class CasSerializerSupport {
   (null == filterTypeSystem.getType(elem._typeImpl.getName( {
 continue;  // skip because not in filter type system
   }
-  enqueue(elem);
+  if (elem != null) {
+enqueue(elem);
+  }
 }
 
 return;




svn commit: r1742465 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java

2016-05-05 Thread schor
Author: schor
Date: Thu May  5 19:52:12 2016
New Revision: 1742465

URL: http://svn.apache.org/viewvc?rev=1742465&view=rev
Log:
no Jira, refactor - change ArrayList to IntVector, and use a better 
for loop

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java?rev=1742465&r1=1742464&r2=1742465&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/impl/OptimizeStrings.java
 Thu May  5 19:52:12 2016
@@ -27,6 +27,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.apache.uima.internal.util.IntVector;
+
 /**
  * Share common underlying char[] among strings: Optimize sets of strings for
  * efficient storage
@@ -283,7 +285,7 @@ public class OptimizeStrings {
 String previous = "";
 int previousOffset = 0;
 offsets = new int[ssLength];
-List lastIndexInCommonStrings = new ArrayList();
+IntVector lastIndexInCommonStrings = new IntVector();
 List commonStrings = new ArrayList();
 
 for (int i = ssLength - 1; i >= 0; i--) {
@@ -311,10 +313,8 @@ public class OptimizeStrings {
 lastIndexInCommonStrings.add(0);   // the last index 
 
 // convert List to int[]
-lastIndexInCommonStringsA = new int[lastIndexInCommonStrings.size()];
-for (int i = 0; i < lastIndexInCommonStrings.size(); i++) {
-  lastIndexInCommonStringsA[i] = lastIndexInCommonStrings.get(i);
-}
+lastIndexInCommonStrings.toArray();
+lastIndexInCommonStringsA = lastIndexInCommonStrings.toArray();
 
 commonStringsA = commonStrings.toArray(new String[commonStrings.size()]);
 




svn commit: r1742568 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:42:13 2016
New Revision: 1742568

URL: http://svn.apache.org/viewvc?rev=1742568&view=rev
Log:
[UIMA-4674] support concurrent modification exception detection; fix impl of 
moveTo for bag index when not found, to follow the interface spec and return an 
invalid iterator; change shrink trigger to size < 1/4 (not 1/2) of size which 
triggers expansion.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java?rev=1742568&r1=1742567&r2=1742568&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/ObjHashSet.java
 Fri May  6 17:42:13 2016
@@ -27,7 +27,6 @@ import java.util.NoSuchElementException;
 import java.util.Set;
 
 import org.apache.uima.cas.FeatureStructure;
-import org.apache.uima.util.Misc;
 
 /**
  * A set of Objects of type T 
@@ -68,6 +67,8 @@ public class ObjHashSet implements Se
 
   private boolean secondTimeShrinkable = false;
   
+  private int modificationCount = 0;
+  
   public ObjHashSet(Class clazz, T removedMarker) {
 this(12, clazz, removedMarker);  // default initial size
   }
@@ -158,12 +159,13 @@ public class ObjHashSet implements Se
   private void resetTable() {
 resetHistogram();
 size = 0;
+modificationCount ++;
   }
   
   @Override
   public void clear() {
-// see if size is less than the 1/2 size that triggers expansion
-if (size <  (sizeWhichTriggersExpansion >>> 1)) {
+// see if size is less than the 1/4 size that triggers expansion
+if (size <  (sizeWhichTriggersExpansion >>> 2)) { 
   // if 2nd time then shrink by 50%
   //   this is done to avoid thrashing around the threshold
   if (secondTimeShrinkable) {
@@ -274,6 +276,7 @@ public class ObjHashSet implements Se
 }
 keys[i] = obj;
 incrementSize();
+modificationCount ++;
 return true;
   }
 
@@ -308,7 +311,8 @@ public class ObjHashSet implements Se
   private boolean removeAtPosition(int pos) {
 // found, remove it
 keys[pos] = (T) removedMarker;  // at runtime, this cast is a no-op
-size--;
+size --;
+modificationCount ++;
 nbrRemoved ++;
 return true;
   }
@@ -476,9 +480,9 @@ public class ObjHashSet implements Se
   
   /**
* if the fs is in the set, the iterator should return it.
-   * if not, move to the first - just to return something.
+   * if not, return -1 (makes iterator invalid)
* @param fs position to this fs
-   * @return the index if present, otherwise moveToNextFileed(0);
+   * @return the index if present, otherwise -1;
*/
   public int moveTo(FeatureStructure fs) {
 if (clazz.isAssignableFrom(fs.getClass())) {
@@ -487,7 +491,7 @@ public class ObjHashSet implements Se
 return pos;
   }
 }
-return moveToFirst(); 
+return -1; 
   }
 
   @Override
@@ -568,4 +572,8 @@ public class ObjHashSet implements Se
 }
 return anyChanged;
   }
+  
+  public int getModificationCount() {
+return modificationCount;
+  }
 }




svn commit: r1742569 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:42:46 2016
New Revision: 1742569

URL: http://svn.apache.org/viewvc?rev=1742569&view=rev
Log:
no jira - clean up imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java?rev=1742569&r1=1742568&r2=1742569&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/UIMAClassLoader.java
 Fri May  6 17:42:46 2016
@@ -27,8 +27,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.StringTokenizer;
 
-import org.apache.uima.util.Misc;
-
 /**
  * UIMAClassLoader is used as extension ClassLoader for UIMA to load 
additional components like
  * annotators and resources. The classpath of the classloader is specified as 
string.




svn commit: r1742570 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:43:16 2016
New Revision: 1742570

URL: http://svn.apache.org/viewvc?rev=1742570&view=rev
Log:
no Jira, add comment

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java?rev=1742570&r1=1742569&r2=1742570&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/rb_trees/IntArrayRBTcommon.java
 Fri May  6 17:43:16 2016
@@ -32,6 +32,17 @@ import org.apache.uima.internal.util.Str
 public class IntArrayRBTcommon {
 
   static final boolean debug = false;
+  /**
+   * klrp:  Key, Left, Right, Parent
+   * 
+   * Each "node" has a node address.  
+   *   The Left, Right, and Parent are in terms of the the node address.
+   *   The key is arbitrary, but kept in sorted order.
+   *   
+   * A global, "root" has the node address of the root node.
+   * The range of possible nodes is 0 to Integer.MAX_VALUE, but 0 is reserved 
as NIL
+   *   
+  */
   protected int[] klrp;
   // the next 3 are for the rare cases where the number of entries
   // in this instance exceeds 512 * 1024 * 1024 - 1




svn commit: r1742571 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:52:17 2016
New Revision: 1742571

URL: http://svn.apache.org/viewvc?rev=1742571&view=rev
Log:
[UIMA-4897] add hooks to FS creation tracing for arrays

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FloatArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/JavaObjectArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/LongArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ShortArray.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/StringArray.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java?rev=1742571&r1=1742570&r2=1742571&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/BooleanArray.java
 Fri May  6 17:52:17 2016
@@ -63,6 +63,10 @@ public final class BooleanArray extends
   public BooleanArray(JCas jcas, int length) {
 super(jcas);
 theArray = new boolean[length];
+
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
   
   /**
@@ -74,6 +78,9 @@ public final class BooleanArray extends
   public BooleanArray(TypeImpl t, CASImpl c, int l) {
 super(t, c);
 theArray = new boolean[l];
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
 
   /**

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java?rev=1742571&r1=1742570&r2=1742571&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/ByteArray.java
 Fri May  6 17:52:17 2016
@@ -60,6 +60,9 @@ public final class ByteArray extends TOP
   public ByteArray(JCas jcas, int length) {
 super(jcas);  
 theArray = new byte[length];
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
 
   /**
@@ -72,6 +75,9 @@ public final class ByteArray extends TOP
   public ByteArray(TypeImpl t, CASImpl c, int length) {
 super(t, c);  
 theArray = new byte[length];
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
 
   /**

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java?rev=1742571&r1=1742570&r2=1742571&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/DoubleArray.java
 Fri May  6 17:52:17 2016
@@ -61,6 +61,9 @@ public final class DoubleArray extends T
   public DoubleArray(JCas jcas, int length) {
 super(jcas);
 theArray = new double[length];
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
   
   /**
@@ -73,6 +76,9 @@ public final class DoubleArray extends T
   public DoubleArray(TypeImpl t, CASImpl c, int length) {
 super(t, c);  
 theArray = new double[length];
+if (CASImpl.traceFSs) {
+  _casView.traceFSCreate(this);
+}
   }
 
   /**

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArray.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/o

svn commit: r1742572 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas: AnnotationBase.java Sofa.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:53:19 2016
New Revision: 1742572

URL: http://svn.apache.org/viewvc?rev=1742572&view=rev
Log:
[UIMA-4897] use setter method instead of direct array setting, to pick up 
tracing hooks

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java?rev=1742572&r1=1742571&r2=1742572&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
 Fri May  6 17:53:19 2016
@@ -22,6 +22,7 @@ package org.apache.uima.jcas.cas;
 import org.apache.uima.cas.AnnotationBaseFS;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.cas.SofaFS;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
@@ -79,7 +80,7 @@ public class AnnotationBase extends TOP
   throw new 
CASRuntimeException(CASRuntimeException.DISALLOW_CREATE_ANNOTATION_IN_BASE_CAS, 
this.getClass().getName());
 }
 // no journaling, no index corruption checking
-_refData[_FI_sofa] = _casView.getSofa();
+_setRefValueCommon(_FI_sofa, _casView.getSofa());
   }
 
   /**
@@ -95,7 +96,7 @@ public class AnnotationBase extends TOP
   throw new 
CASRuntimeException(CASRuntimeException.DISALLOW_CREATE_ANNOTATION_IN_BASE_CAS, 
this.getClass().getName());
 }
 // no journaling, no index corruption checking
-_refData[_FI_sofa] = _casView.getSofa();
+_setRefValueCommon(_FI_sofa, _casView.getSofa());
   }
 
   // *--*

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java?rev=1742572&r1=1742571&r2=1742572&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
 Fri May  6 17:53:19 2016
@@ -76,9 +76,9 @@ public class Sofa extends TOP implements
   
   public Sofa(TypeImpl t, CASImpl c, int sofaNum, String viewName, String 
mimeType) {
 super(t, c);
-_intData[_FI_sofaNum ] = sofaNum;
-_refData[_FI_sofaID  ] = viewName;
-_refData[_FI_mimeType] =  mimeType;
+_setIntValueNcNj(_FI_sofaNum, sofaNum);
+_setRefValueCommon(_FI_sofaID, viewName);
+_setRefValueCommon(_FI_mimeType, mimeType);
 //_F_sofaNum = sofaNum;
 //_F_sofaID = viewName;
 //_F_mimeType = mimeType;




svn commit: r1742573 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 17:55:08 2016
New Revision: 1742573

URL: http://svn.apache.org/viewvc?rev=1742573&view=rev
Log: (empty)

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java?rev=1742573&r1=1742572&r2=1742573&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java
 Fri May  6 17:55:08 2016
@@ -143,11 +143,10 @@ public class Annotation extends Annotati
* @return
*/
   public int compareAnnotation(Annotation other) {
-int[] o = other._intData;
-int result = Integer.compare(_intData[_FI_begin], o[_FI_begin]);
+int result = Integer.compare(_getIntValueNc(_FI_begin), 
other._getIntValueNc(_FI_begin));
 if (result != 0) return result;
 
-result = Integer.compare(_intData[_FI_end], o[_FI_end]);
+result = Integer.compare(_getIntValueNc(_FI_end), 
other._getIntValueNc(_FI_end));
 return (result == 0) ? 0 : -result;  // reverse compare
   }
   
@@ -157,14 +156,10 @@ public class Annotation extends Annotati
* @return
*/
   public int compareAnnotation(Annotation other, LinearTypeOrder lto) {
-int[] o = other._intData;
-int result = Integer.compare(_intData[_FI_begin], o[_FI_begin]);
+int result = compareAnnotation(other);
 if (result != 0) return result;
-
-result = Integer.compare(_intData[_FI_end], o[_FI_end]);
-if (result != 0) return -result;
 
-return lto.compare(this,  other);
+return lto.compare(this, other);
   }
 
 




svn commit: r1742574 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:06:27 2016
New Revision: 1742574

URL: http://svn.apache.org/viewvc?rev=1742574&view=rev
Log:
[UIMA-4674] [UIMA-4920] Clarify java doc for edge cases re views. Rename some 
variables and types to reduce casting.  Reset to original state after copy view 
(so that target view doesn't persist to further uses of the cas copier 
instance).  get corresponding tgt view by name, and respect component sofa 
mapping.  For copying FS which are subtypes of AnnotationBase, use the sofa 
there to specify the view to copy to. When copying long/double value, copy 2nd 
part. Handle copying of arrays of specific FSs; where the target type system 
could be missing the type.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java?rev=1742574&r1=1742573&r2=1742574&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
 Fri May  6 18:06:27 2016
@@ -35,8 +35,10 @@ import org.apache.uima.cas.impl.FeatureI
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.internal.util.Int2ObjListMap;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.PositiveIntSet;
 import org.apache.uima.internal.util.PositiveIntSet_impl;
+import org.apache.uima.jcas.cas.AnnotationBase;
 import org.apache.uima.jcas.cas.CommonArray;
 import org.apache.uima.jcas.cas.CommonPrimitiveArray;
 import org.apache.uima.jcas.cas.FSArray;
@@ -56,12 +58,26 @@ import org.apache.uima.jcas.tcas.Annotat
  * the method  getLowLevelCas() which should return a reference to the 
underlying CAS which can be 
  * successfully cast to a CASImpl.
  * 
- * The source and target CASs must be separate CASs (that is, not two views of 
the same CAS), with
- * one exception:
+ * The source and target view names for FSs are the same except if:
+ *   - The constructor of the CAS Copier instance specifies two different view 
names, or
+ *   - The copyCasView method(s) specify two different view names.
+ *   In both these cases, the FSs copied are between different views.  
+ *   Feature Structures belonging to one view will be belonging to the other 
view in the copy.
+ * Exception: Feature Structures which are subtypes of AnnotationBase 
belong to the view
+ * associated with the AnnotationBase's sofa reference.
  * 
- *   If the CopyCasView API is being used, and the target View name is 
different from the source view name,
+ * The source and target CASs must be separate CASs (that is, not two views of 
the same CAS),
+ *   unless the target View name is different from the source view name.
  *   
+ * The copied FSs have their associated CAS references set to a corresponding 
view in the target.
  * 
+ * The corresponding view is the view in the target with the same view name as 
the source view
+ * (perhaps after sofa mapping specified by the target CAS's current component 
sofa mapping info), 
+ * except for the copyCasView calls, where the target view is specified 
explicitly.
+ * 
+ *   But if the FS being copied is a subtype of AnnotationBase, then the 
corresponding view for the copy of the 
+ *   sofa reference (if not null) is used.
+ *   
  */
 public class CasCopier {
   
@@ -185,11 +201,11 @@ public class CasCopier {
 //  private final TypeInfo[] tInfoArray;
   
   // these next are called original, as they are the views used to create the 
CasCopier instance
-  private final CAS originalSrcCas;
-  private final CAS originalTgtCas;
-  // these next are the CASImpls of these
-  private final CASImpl originalSrcCasImpl;
-  private final CASImpl originalTgtCasImpl;
+  private final CASImpl originalSrcCas;
+  private final CASImpl originalTgtCas;
+//  // these next are the CASImpls of these
+//  private final CASImpl originalSrcCasImpl;
+//  private final CASImpl originalTgtCasImpl;
   
   // these next 2 are like the above, but for explicit view copying
   
@@ -207,6 +223,9 @@ public class CasCopier {
   
   private final boolean isEqualTypeSystems;
   
+  private String cachedSrcViewName = "";
+  private CASImpl cachedTgtView = null;
+  
 //  
 //  private final TypeImpl srcStringType;
   
@@ -278,14 +297,11 @@ public class CasCopier {
   public CasCopier(CAS aSrcCas, CAS aDestCas, boolean lenient) {
 
 mFsMap = new 
IdentityHashMap<>(((CASImpl)(aSrcCas.getLowLevelCAS())).getLastUsedFsId());
-originalSrcCas = aSrcCas;
-originalT

svn commit: r1742575 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima: internal/util/Misc.java util/Misc.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:12:42 2016
New Revision: 1742575

URL: http://svn.apache.org/viewvc?rev=1742575&view=rev
Log:
[UIMA-4674] move Misc to internal package so we can add new things without 
triggering a version enforcement issue

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
  - copied, changed from r1739309, 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/Misc.java
Removed:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/Misc.java

Copied: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
 (from r1739309, 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/Misc.java)
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java?p2=uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java&p1=uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/Misc.java&r1=1739309&r2=1742575&rev=1742575&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/Misc.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
 Fri May  6 18:12:42 2016
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.uima.util;
+package org.apache.uima.internal.util;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -37,6 +37,7 @@ import java.util.regex.Pattern;
 
 import org.apache.uima.UIMARuntimeException;
 import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.function.Runnable_withException;
 
 public class Misc {
 
@@ -292,7 +293,7 @@ public class Misc {
   throw new UIMARuntimeException(UIMARuntimeException.INTERNAL_ERROR);
   }
   
-  public static void assertUie(boolean v, Exception e) {
+  public static void assertUie(boolean v, Throwable e) {
 if (!v) 
   throw new UIMARuntimeException(e, UIMARuntimeException.INTERNAL_ERROR);
   }
@@ -301,7 +302,7 @@ public class Misc {
 assertUie(false);
   }
   
-  public static void internalError(Exception e) {
+  public static void internalError(Throwable e) {
 assertUie(false, e);
   }
   
@@ -436,6 +437,27 @@ public class Misc {
 }
 return className;
   }
+  
+  public static void timeLoops(String title, int iterations, 
Runnable_withException r) throws Exception {
+long shortest = Long.MAX_VALUE;
+for (int i = 0; i < iterations; i++) {
+  long startTime = System.nanoTime();
+  r.run();
+  long time = (System.nanoTime() - startTime)/ 1000;  // microseconds
+  if (time < shortest) {
+shortest = time;
+System.out.format("%s: speed is %,d microseconds on iteration %,d%n", 
title, shortest, i);
+  }
+}
+  }
+  
+  public static void sleep(int milliseconds) {
+try {
+  Thread.sleep(milliseconds);
+} catch (InterruptedException e) {
+  throw new RuntimeException(e);
+}
+  }
 
 //private static final Function uimaSystemFindLoadedClass;
 //static {




svn commit: r1742577 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util: Int2ObjHashMap.java Int2ObjListMap.java IntHashSet.java Obj2IntIdentityHashMap

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:18:51 2016
New Revision: 1742577

URL: http://svn.apache.org/viewvc?rev=1742577&view=rev
Log:
[UIMA-4664] new set-sorted index impl based on expandable arrays, with 
intelligent management of adds / removes.  Also fix refs to Misc for moved 
class.

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/OrderedFsSet_array.java
Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjHashMap.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjListMap.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/IntHashSet.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjHashMap.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjHashMap.java?rev=1742577&r1=1742576&r2=1742577&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjHashMap.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjHashMap.java
 Fri May  6 18:18:51 2016
@@ -23,8 +23,6 @@ import java.lang.reflect.Array;
 import java.util.Arrays;
 import java.util.NoSuchElementException;
 
-import org.apache.uima.util.Misc;
-
 /**
  * A map<int, T>
  * 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjListMap.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjListMap.java?rev=1742577&r1=1742576&r2=1742577&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjListMap.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Int2ObjListMap.java
 Fri May  6 18:18:51 2016
@@ -21,8 +21,6 @@ package org.apache.uima.internal.util;
 
 import java.util.ArrayList;
 
-import org.apache.uima.util.Misc;
-
 /**
  * A map<int, T>
  * 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/IntHashSet.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/IntHashSet.java?rev=1742577&r1=1742576&r2=1742577&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/IntHashSet.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/IntHashSet.java
 Fri May  6 18:18:51 2016
@@ -22,8 +22,6 @@ package org.apache.uima.internal.util;
 import java.util.Arrays;
 import java.util.NoSuchElementException;
 
-import org.apache.uima.util.Misc;
-
 /**
  * A set of non-zero ints. 
  *   0 reserved internally to indicate "not in the map";

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java?rev=1742577&r1=1742576&r2=1742577&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
 Fri May  6 18:18:51 2016
@@ -24,7 +24,6 @@ import java.util.Arrays;
 import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FeatureStructure;
-import org.apache.uima.util.Misc;
 
 /**
  * A Map from non-null Objects of type T to ints

Added: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/OrderedFsSet_array.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/OrderedFsSet_array.java?rev=1742577&view=auto
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/uti

svn commit: r1742580 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:25:40 2016
New Revision: 1742580

URL: http://svn.apache.org/viewvc?rev=1742580&view=rev
Log:
no Jira - comment only and add @Deprecated to do-nothing method

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java?rev=1742580&r1=1742579&r2=1742580&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/admin/CASMgr.java
 Fri May  6 18:25:40 2016
@@ -75,6 +75,11 @@ public interface CASMgr {
*/
   void enableReset(boolean flag);
 
+  /**
+   * Does nothing, kept only for backwards compatibility
+   * @param cas -
+   */
+  @Deprecated
   void setCAS(CAS cas);
 
   /**




svn commit: r1742581 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:27:21 2016
New Revision: 1742581

URL: http://svn.apache.org/viewvc?rev=1742581&view=rev
Log:
[UIMA-4670] add a messasge

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java?rev=1742581&r1=1742580&r2=1742581&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 Fri May  6 18:27:21 2016
@@ -60,8 +60,11 @@ public class CASRuntimeException extends
 
/** Error accessing type system: the type system has not been 
committed. */
public static final String TYPESYSTEM_NOT_LOCKED = 
"TYPESYSTEM_NOT_LOCKED";
-
-   /** Can't create FS of type "{0}" until the type system has been 
committed. */
+   
+   /** Can''t add an array type "{0}" to the type system after the type 
system has been committed. */
+  public static final String ADD_ARRAY_TYPE_AFTER_TS_COMMITTED = 
"ADD_ARRAY_TYPE_AFTER_TS_COMMITTED";
+  
+   /** Can''t create FS of type "{0}" until the type system has been 
committed. */
public static final String CREATE_FS_BEFORE_TS_COMMITTED = 
"CREATE_FS_BEFORE_TS_COMMITTED";

   /** Cannot request the Java Class for a UIMA type before type system commit 
**/




svn commit: r1742582 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:28:22 2016
New Revision: 1742582

URL: http://svn.apache.org/viewvc?rev=1742582&view=rev
Log:
[UIMA-4674] move Misc to internal package so we can add new things without 
triggering a version enforcement issue

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java?rev=1742582&r1=1742581&r2=1742582&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/BuiltinTypeKinds.java
 Fri May  6 18:28:22 2016
@@ -3,7 +3,7 @@ package org.apache.uima.cas;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.uima.util.Misc;
+import org.apache.uima.internal.util.Misc;
 
 public class BuiltinTypeKinds {
   




svn commit: r1742583 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:29:08 2016
New Revision: 1742583

URL: http://svn.apache.org/viewvc?rev=1742583&view=rev
Log:
[UIMA-4674] support for default iterator impl that skips redundant has-next test

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java?rev=1742583&r1=1742582&r2=1742583&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/FSIterator.java
 Fri May  6 18:29:08 2016
@@ -114,6 +114,11 @@ public interface FSIterator

svn commit: r1742584 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:30:32 2016
New Revision: 1742584

URL: http://svn.apache.org/viewvc?rev=1742584&view=rev
Log:
[UIMA-4674] support for test cases for timing loops that might throw exceptions

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java

Added: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java?rev=1742584&view=auto
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java
 (added)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/function/Runnable_withException.java
 Fri May  6 18:30:32 2016
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.uima.cas.function;
+
+@FunctionalInterface
+public interface Runnable_withException {
+  void run() throws Exception;
+}




svn commit: r1742586 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: LongSet.java StringSet.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:32:06 2016
New Revision: 1742586

URL: http://svn.apache.org/viewvc?rev=1742586&view=rev
Log:
[UIMA-4674] backward compatibility support - for get/set int used to manipulate 
refs to strings and longs/doubles.

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongSet.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringSet.java

Added: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongSet.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongSet.java?rev=1742586&view=auto
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongSet.java
 (added)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LongSet.java
 Fri May  6 18:32:06 2016
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.cas.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Sets of long values, used to support ll_set/getIntValue that manipulate v2 
style long data 
+ * 
+ */
+final class LongSet {
+
+  private int lastLongCode = 0;
+  final private ArrayList longs = new ArrayList<>();
+  {longs.add(null);}
+  final private HashMap long2int = new HashMap<>();
+  
+  // Reset the long heap (called on CAS reset).
+  final void reset() {
+longs.clear();
+longs.add(null);
+long2int.clear();
+lastLongCode = 0;
+  }
+
+  // Get a long value
+  Long getLongForCode(int longCode) {
+if (longCode == LowLevelCAS.NULL_FS_REF) {
+  return null;
+}
+return longs.get(longCode);
+  }
+
+  /**
+   * get the code for a long, adding it to the long table if not already there.
+   * @param s The long.
+   * @return The code corresponding to the long, which can be used in the 
getLongForCode call above
+   */
+  int getCodeForLong(Long s) {
+if (s == null) {
+  return LowLevelCAS.NULL_FS_REF;
+}
+
+Integer prev = long2int.putIfAbsent(s, lastLongCode + 1);
+if (prev == null) {
+  longs.add(s);
+  return ++lastLongCode;
+}
+
+return prev; 
+  }
+  
+  
+  final int getSize() {
+ return this.longs.size();
+  }
+  
+}

Added: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringSet.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringSet.java?rev=1742586&view=auto
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringSet.java
 (added)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/StringSet.java
 Fri May  6 18:32:06 2016
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.cas.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Like string heap, but keeps strings in a set
+ * 
+ */
+final class StringSet {
+
+  private int lastStringCode = 0;
+  final pri

svn commit: r1742587 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: CASMgrSerializer.java CASSerializer.java CasTypeSystemMapper.java CommonSerDesSeque

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 18:44:58 2016
New Revision: 1742587

URL: http://svn.apache.org/viewvc?rev=1742587&view=rev
Log:
[UIMA-4674] move Misc to internal package so we can add new things without 
triggering a version enforcement issue, change getFeatureImpls to return array, 
not arraylist (performance)

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASMgrSerializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasTypeSystemMapper.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Heap.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/UimaDecompiler.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASMgrSerializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASMgrSerializer.java?rev=1742587&r1=1742586&r2=1742587&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASMgrSerializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASMgrSerializer.java
 Fri May  6 18:44:58 2016
@@ -34,8 +34,8 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.FSIndexComparator;
 import org.apache.uima.cas.admin.LinearTypeOrder;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.SymbolTable;
-import org.apache.uima.util.Misc;
 
 /**
  * Container for serialized CAS typing information. Contains information about 
the type system, as

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java?rev=1742587&r1=1742586&r2=1742587&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
 Fri May  6 18:44:58 2016
@@ -30,6 +30,7 @@ import org.apache.uima.cas.Marker;
 import org.apache.uima.cas.function.IntConsumer_withIOException;
 import org.apache.uima.cas.impl.CASImpl.FsChange;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.Obj2IntIdentityHashMap;
 import org.apache.uima.jcas.cas.BooleanArray;
 import org.apache.uima.jcas.cas.ByteArray;
@@ -41,7 +42,6 @@ import org.apache.uima.jcas.cas.LongArra
 import org.apache.uima.jcas.cas.ShortArray;
 import org.apache.uima.jcas.cas.StringArray;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
 
 /**
  * This object has 2 purposes.
@@ -692,7 +692,7 @@ public class CASSerializer implements Se
 int offset = fm.nextSetBit(0);
 while (offset >= 0) {
   chgMainHeapAddr.add(csds.fs2addr.get(fs) + offset + 1);  // skip 
over type code);
-  FeatureImpl feat = type.getFeatureImpls().get(offset);
+  FeatureImpl feat = type.getFeatureImpls()[offset];
 
   switch (feat.getSlotKind()) {
   case Slot_Boolean: chgMainHeapValue.add(fs._getBooleanValueNc(feat) 
? 1 : 0); break;

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasTypeSystemMapper.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasTypeSystemMapper.java?rev=1742587&r1=1742586&r2=1742587&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasTypeSystemMapper.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasTypeSystemMapper.java
 Fri May  6 18:44:58 2016
@@ -24,7 +24,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.uima.cas.CASRuntimeException;
-import org.apache.uima.util.Misc;
+import org.apache.uima.internal.util.Misc;
 
 /**
  * This class gets initialized with two type systems, and then provides 
@@ -213,7 +213,7 @@ public class CasTypeSystemMapper {

svn commit: r1742594 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: BinaryCasSerDes.java BinaryCasSerDes4.java BinaryCasSerDes6.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:29:26 2016
New Revision: 1742594

URL: http://svn.apache.org/viewvc?rev=1742594&view=rev
Log:
[UIMA-4674] move Misc to internal package so we can add new things without 
triggering a version enforcement issue, change getFeatureImpls to return array, 
not arraylist (performance)

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java?rev=1742594&r1=1742593&r2=1742594&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
 Fri May  6 19:29:26 2016
@@ -42,6 +42,7 @@ import org.apache.uima.cas.impl.SlotKind
 import org.apache.uima.internal.util.Int2ObjHashMap;
 import org.apache.uima.internal.util.IntListIterator;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.Obj2IntIdentityHashMap;
 import org.apache.uima.jcas.cas.BooleanArray;
 import org.apache.uima.jcas.cas.ByteArray;
@@ -56,7 +57,6 @@ import org.apache.uima.jcas.cas.Sofa;
 import org.apache.uima.jcas.cas.StringArray;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.resource.ResourceInitializationException;
-import org.apache.uima.util.Misc;
 
 /**
  * Binary (mostly non compressed) CAS deserialization
@@ -328,7 +328,7 @@ public class BinaryCasSerDes {
   TypeImpl type = fs._typeImpl;
   boolean wasRemoved;
   if (!type.isArray()) {
-FeatureImpl feat = type.getFeatureImpls().get(heapAddr - fsStartAddr - 
1);
+FeatureImpl feat = type.getFeatureImpls()[heapAddr - fsStartAddr - 1];
 wasRemoved = baseCas.checkForInvalidFeatureSetting(fs, feat.getCode(), 
tobeAddedback);
 addrOfFsToBeAddedBack = wasRemoved ? fsStartAddr : 0;
 fsToBeAddedBack = wasRemoved ? fs : null; 
@@ -761,7 +761,7 @@ public class BinaryCasSerDes {
 // loop over all heap modifications to existing FSs
 
 // first disable auto addbacks for index corruption - this routine is 
handling that
-baseCas.svd.fsTobeAddedbackSingleInUse = true;  // sorry, a bad hack...
+baseCas.svd.disableAutoCorruptionCheck = true;
 
 try {
   for (int i = 0; i < modWords.length; i = i + 2) {
@@ -773,7 +773,7 @@ public class BinaryCasSerDes {
   bds.addBackIfRemoved();
   bds.fssAddrArray = null;  // free storage
 } finally {
-  baseCas.resetAddbackSingleInUse();
+  baseCas.svd.disableAutoCorruptionCheck = false;
 }
   }
   
@@ -1163,7 +1163,7 @@ public class BinaryCasSerDes {
 
   public static int getFsSpaceReq(TOP fs, TypeImpl type) {
 // use method in type; pass in array size if array
-return type.getFsSpaceReq(type.isHeapStoredArray() ? 
((CommonArray)fs).size() : 0);
+return type.getFsSpaceReq(fs);
   }  
   
 
@@ -1659,7 +1659,7 @@ public class BinaryCasSerDes {
 } else { // end of arrays
   // is plain fs with fields
   final int offset0 = slotAddr - bds.fsStartAddr - 1;  // 0 based offset 
of feature, -1 for type code word
-  FeatureImpl feat = type.getFeatureImpls().get(offset0);
+  FeatureImpl feat = type.getFeatureImpls()[offset0];
   SlotKind slotKind = feat.getSlotKind();
   switch(slotKind) {
   case Slot_Boolean:

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java?rev=1742594&r1=1742593&r2=1742594&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
 Fri May  6 19:29:26 2016
@@ -54,6 +54,7 @@ import org.apache.uima.cas.impl.SlotKind
 import org.apache.uima.internal.util.Int2ObjHashMap;
 import org.apache.uima.internal.util.IntListIterator;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.u

svn commit: r1742598 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:33:50 2016
New Revision: 1742598

URL: http://svn.apache.org/viewvc?rev=1742598&view=rev
Log:
[UIMA-4674] move Misc to internal package so we can add new things without 
triggering a version enforcement issue, add exception for getters which return 
SofaFS instead of Sofa (backwards compatibility)

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java?rev=1742598&r1=1742597&r2=1742598&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
 Fri May  6 19:33:50 2016
@@ -31,6 +31,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Parameter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -41,10 +42,10 @@ import org.apache.uima.cas.BuiltinTypeKi
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
 import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.util.Level;
 import org.apache.uima.util.Logger;
-import org.apache.uima.util.Misc;
 
 /*
  * There is one class instance of this per class loader.
@@ -675,7 +676,7 @@ public class FSClassRegistry {
   /** JCas Class's supertypes for "{0}", "{1}" and the corresponding UIMA 
Supertypes for "{2}", "{3}" don't have an intersection. */
   add2errors(errorSet, 
  new 
CASRuntimeException(CASRuntimeException.JCAS_CAS_MISMATCH_SUPERTYPE, 
- clazz.getName(), Misc.ppList(superClasses), ti.getName(), 
Misc.ppList(ti.getAllSuperTypes())),
+ clazz.getName(), Misc.ppList(superClasses), ti.getName(), 
Misc.ppList(Arrays.asList(ti.getAllSuperTypes(,
  true);  // throwable error
 }
 
@@ -704,12 +705,18 @@ public class FSClassRegistry {
   rangeClass = range.getComponentType().getJavaClass();
 }
   }
-  if (!rangeClass.isAssignableFrom(returnClass)) {  // can return subclass 
of TOP, OK if range is TOP
-/** CAS type system type "{0}" defines field "{1}" with range "{2}", 
but JCas class has range "{3}". */
-add2errors(errorSet, 
-   new 
CASRuntimeException(CASRuntimeException.JCAS_TYPE_RANGE_MISMATCH, 
-   ti.getName(), fi.getShortName(), rangeClass, 
returnClass),
-   false);  // should throw, but some code breaks!  
+  if (!rangeClass.isAssignableFrom(returnClass)) {   // can return 
subclass of TOP, OK if range is TOP
+if (rangeClass.getName().equals("org.apache.uima.jcas.cas.Sofa") &&
   // exception: for backwards compat reasons, sofaRef returns SofaFS, not Sofa.
+returnClass.getName().equals("org.apache.uima.cas.SofaFS")) {
+  // empty
+} else {
+  
+  /** CAS type system type "{0}" defines field "{1}" with range "{2}", 
but JCas getter method is returning "{3}" which is not a subtype of the 
declared range.*/
+  add2errors(errorSet, 
+ new 
CASRuntimeException(CASRuntimeException.JCAS_TYPE_RANGE_MISMATCH, 
+ ti.getName(), fi.getShortName(), rangeClass, 
returnClass),
+ false);  // should throw, but some code breaks!
+}
   }
 }
 




svn commit: r1742600 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:39:53 2016
New Revision: 1742600

URL: http://svn.apache.org/viewvc?rev=1742600&view=rev
Log:
[UIMA-4674] move Misc to internal package, tweak internal comparator generic 
type (more specific), add support for test cases, that removes defined indexes 
(only works if nothing has been added to indexes), change concurrent 
modification detection - put into individual indexes (better locality of ref). 
remove extra method duplic. by cas method. 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java?rev=1742600&r1=1742599&r2=1742600&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 Fri May  6 19:39:53 2016
@@ -47,11 +47,11 @@ import org.apache.uima.cas.admin.LinearT
 import org.apache.uima.cas.admin.LinearTypeOrderBuilder;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.ObjHashSet;
 import org.apache.uima.jcas.cas.AnnotationBase;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.tcas.Annotation;
-import org.apache.uima.util.Misc;
 
 /**
  * There is one instance of this class per CAS View.
@@ -102,7 +102,8 @@ public class FSIndexRepositoryImpl imple
   
   public static final String DISABLE_ENHANCED_WRONG_INDEX = 
"uima.disable_enhanced_check_wrong_add_to_index";
  
-  private static final boolean IS_DISABLE_ENHANCED_WRONG_INDEX_CHECK = 
Misc.getNoValueSystemProperty(DISABLE_ENHANCED_WRONG_INDEX);
+  private static final boolean IS_DISABLE_ENHANCED_WRONG_INDEX_CHECK = // true 
|| // debug
+  Misc.getNoValueSystemProperty(DISABLE_ENHANCED_WRONG_INDEX);
   
   // Implementation note: the use of equals() here is pretty hairy and
   // should probably be fixed. We rely on the fact that when two
@@ -168,9 +169,9 @@ public class FSIndexRepositoryImpl imple
 /**
  * lazily created comparator using the built-in annotation index
  */
-private Comparator annotationFsComparator = null;
+private Comparator annotationFsComparator = null;
 
-private Comparator annotationFsComparatorWithId = null;
+private Comparator annotationFsComparatorWithId = null;
 
 /**
  * optimization only - bypasses some shared (among views) initialization 
if already done
@@ -255,6 +256,20 @@ public class FSIndexRepositoryImpl imple
   }
   return null;
 }
+
+private void removeIndexExcludingType(int indexingStrategy, 
FSIndexComparatorImpl comparatorForIndexSpecs) {
+  Iterator> it = indexesForType.iterator();
+  while (it.hasNext()) {
+FsIndex_singletype singleTypeIndex = it.next().fsIndex_singletype;
+if (singleTypeIndex.getIndexingStrategy() == indexingStrategy) {
+  FSIndexComparatorImpl indexComp = 
singleTypeIndex.getComparatorImplForIndexSpecs();
+  if (indexComp.equalsWithoutType(comparatorForIndexSpecs)) {
+it.remove();
+break;
+  }
+}
+  }
+}
 
 @Override
 public String toString() {
@@ -296,14 +311,15 @@ public class FSIndexRepositoryImpl imple
   IndexesForType getIndexesForUsedType(int i) {
 return indexArray[this.usedIndexes.get(i)];
   }
-  
-  /** 
-   * an array of ints, one for each type in the type hierarchy. 
-   * Used to enable iterators to detect modifications (adds / removes) 
-   * to indexes they're iterating over while they're iterating over them.
-   * Not private so it can be seen by FSLeafIndexImpl
-   */
-  final int[] detectIllegalIndexUpdates;
+
+  // moved from here into individual indexes over each type, for better 
locality of reference
+//  /** 
+//   * an array of ints, one for each type in the type hierarchy. 
+//   * Used to enable iterators to detect modifications (adds / removes) 
+//   * to indexes they're iterating over while they're iterating over them.
+//   * Not private so it can be seen by FSLeafIndexImpl
+//   */
+//  final int[] detectIllegalIndexUpdates;
   
   /**
* A map from names to FsIndex_iicps, which represent the index at the
@@ -386,7 +402,7 @@ public class FSIndexRepositoryImpl imple
 this.sii = null;
 this.name2indexMap = null;
 this.indexArray = null;
-this.detectIllegalIndexUpdates = null;
+//this.detectIllegalIndexUpdat

svn commit: r1742601 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:41:37 2016
New Revision: 1742601

URL: http://svn.apache.org/viewvc?rev=1742601&view=rev
Log:
[UIMA-4674] change feat offsets to short, for better locality of ref; 
precompute more boolean values 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java?rev=1742601&r1=1742600&r2=1742601&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureImpl.java
 Fri May  6 19:41:37 2016
@@ -39,21 +39,24 @@ public class FeatureImpl implements Feat
* the 0 based offset for this feature ignoring ref/int distinction, in 
feature order, without regard to JCas implemented features; set at commit time
* used by v2 style de/serializers
*/
-  private   int featureOffset = -1;  
-  private   int adjustedFeatureOffset = -1; // the offset in the storage 
array for this feature, adjusted to exclude JCas implemented features; set at 
commit time
+  private   short featureOffset = -1;  
+  private   short adjustedFeatureOffset = -1; // the offset in the storage 
array for this feature, adjusted to exclude JCas implemented features; set at 
commit time
   
 // not used 2/29/16 to be removed
 //int registryIndex = -1; // set from JCas classes feature 
registry
 // used to setup index corruption 
bitset
   public final boolean isInInt;// specifies which array the data is in
-
+  private final boolean isMultipleRefsAllowed;
+  /**
+   * true if the range is a long or double
+   */
+  public final boolean isLongOrDouble; 
   private TypeImpl highestDefiningType;  // not final, could change
   
   private final TypeImpl rangeType;
   
 //  private final TypeSystemImpl ts;
 
-  private final boolean isMultipleRefsAllowed;
   /**
* true for the feature which is the AnnotationBase sofa reference.
*/
@@ -77,6 +80,7 @@ public class FeatureImpl implements Feat
 shortName = null;
 slotKind = null;
 rangeTypeClass = 0;
+isLongOrDouble = false;
   }
 
   FeatureImpl(TypeImpl typeImpl, String shortName, TypeImpl rangeType, 
TypeSystemImpl tsi, boolean isMultipleRefsAllowed, SlotKind slotKind) {
@@ -86,6 +90,7 @@ public class FeatureImpl implements Feat
   featureCode = feats.size();
   
   this.rangeType = rangeType;
+  this.isLongOrDouble = rangeType.isLongOrDouble;
   this.slotKind = slotKind;
   this.shortName = shortName;
   this.isMultipleRefsAllowed = isMultipleRefsAllowed;
@@ -145,8 +150,9 @@ public class FeatureImpl implements Feat
   @Override
   public String toString() {
 return String.format(
-"%s [%s: rangeType=%s, isMultipleRefsAllowed=%s]",
-this.getClass().getSimpleName(), getName(), rangeType, 
isMultipleRefsAllowed);
+"%s [%s: rangeType=%s, isMultipleRefsAllowed=%s, slotKind=%s]",
+this.getClass().getSimpleName(), getName(), rangeType, 
isMultipleRefsAllowed,
+slotKind);
   }
 
 //  public String getGetterSetterName(boolean isGet) {
@@ -180,7 +186,10 @@ public class FeatureImpl implements Feat
   }
   
   void setOffset(int offset) {
-featureOffset = offset;
+if (offset > Short.MAX_VALUE) {
+  throw new RuntimeException("Feature Offset exceeds maximum of 32767");
+}
+featureOffset = (short) offset;
   }
   
   public int getAdjustedOffset() {
@@ -188,7 +197,10 @@ public class FeatureImpl implements Feat
   }
   
   void setAdjustedOffset(int offset) {
-adjustedFeatureOffset = offset;
+if (offset > Short.MAX_VALUE) {
+  throw new RuntimeException("Feature Offset exceeds maximum of 32767");
+}
+adjustedFeatureOffset = (short) offset;
   }
 
 //  /**




svn commit: r1742603 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:52:23 2016
New Revision: 1742603

URL: http://svn.apache.org/viewvc?rev=1742603&view=rev
Log:
[UIMA-4674] [UIMA-4897] move Misc to internal package, support tracing of FS 
creation and updates. remove redundant featurevalidationcheck from 
setStringValue.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java?rev=1742603&r1=1742602&r2=1742603&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 Fri May  6 19:52:23 2016
@@ -32,7 +32,7 @@ import org.apache.uima.cas.FeatureStruct
 import org.apache.uima.cas.SofaFS;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.impl.SlotKinds.SlotKind;
-import org.apache.uima.cas_data.impl.FeatureStructureImpl;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.StringUtils;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.cas.AnnotationBase;
@@ -49,7 +49,6 @@ import org.apache.uima.jcas.cas.ShortArr
 import org.apache.uima.jcas.cas.StringArray;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.impl.JCasImpl;
-import org.apache.uima.util.Misc;
 
 /**
  * Feature structure implementation (for non JCas and JCas)
@@ -82,19 +81,55 @@ public class FeatureStructureImplC imple
 
   public static final String DISABLE_RUNTIME_FEATURE_RANGE_VALIDATION = 
"uima.disable_runtime_feature_range_validation";
   public static final boolean IS_ENABLE_RUNTIME_FEATURE_RANGE_VALIDATION  = 
!Misc.getNoValueSystemProperty(DISABLE_RUNTIME_FEATURE_RANGE_VALIDATION);
-
+  
+  private  static final boolean traceFSs = CASImpl.traceFSs;
+  
   public static final int IN_SET_SORTED_INDEX = 1;
+  
+  // next is for experiment of allocating multiple int arrays for different fss
+  
+//  //3322     1100  
+//  //1098 7654 3210 9876 5432 1098 7654 3210
+//  //---
+//  //  0001   1000     int offset mask
+//  //0111  1110        ref offset mask
+//  
+//  private static final int bitMaskIntOffset = 0x001ff800;
+//  private static final int bitMaskRefOffset = 0x7fe0;
+//  private static final int shiftIntOffset = 11;
+//  private static final int shiftRefOffset = 21;
+  
   // data storage
   // slots start with _ to prevent name collision with JCas style getters and 
setters.
   
-  protected final int[] _intData;  
-  protected final Object[] _refData;
+  /**
+   * Experiment:
+   *   goal: speed up allocation and maybe improve locality of reference
+   * a) have _intData and _refData point to 
+   * 1) for array sizes < 256, a common shared array used with an 
offset
+   * 2) for array sizes > 256, individual arrays as is the 
previous design case
+   * 
+   * b) have accesses use an offset kept in the flags; 
+   *allocate in blocks of 1k
+   *  the larger, the less java object overhead per
+   *  the larger, the less "breakage" waste
+   *  the smaller, the better GC 
+   *offset = 10 bits * 2 (one for int, one for ref)
+   *
+   *   results: on 16-way processor (64 hyperthreaded cores), caused 2x 
slowdown, probably due to cache
+   * contention. 
+   */
+  
+  private final int[] _intData;  
+  private final Object[] _refData;
   protected final int _id;  // a separate slot for access without loading 
_intData object
-  protected int flags = 0;  // a set of flags
+  private int _flags = 0;  // a set of flags
 // bit 0 (least significant): fs is in one or more 
non-bag indexes
-// bits 1-31 reserved
+// bit 1-20 reserved
+// bits 21-30 ref offset
+// bits 11-20 int offset
+// bit 31 reserved

-  
   /**
* These next two object references are the same for every FS of this class 
created in one view.
*   So, they could be stored in a shared object
@@ -108,9 +143,9 @@ public class FeatureStructureImplC imple
* 
* Also used to access other metadata including the type system
*/
-  protected final CASImpl _casView;  
+  public final CASImpl _casView

svn commit: r1742604 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 19:53:47 2016
New Revision: 1742604

URL: http://svn.apache.org/viewvc?rev=1742604&view=rev
Log:
[UIMA-4674] add version of moveToPrevious that skips validity check; use when 
test is redundant.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java?rev=1742604&r1=1742603&r2=1742604&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FilteredIterator.java
 Fri May  6 19:53:47 2016
@@ -99,6 +99,11 @@ class FilteredIterator

svn commit: r1742605 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:02:58 2016
New Revision: 1742605

URL: http://svn.apache.org/viewvc?rev=1742605&view=rev
Log:
[UIMA-4664] remove unused methods

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java?rev=1742605&r1=1742604&r2=1742605&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_bag.java
 Fri May  6 20:02:58 2016
@@ -70,8 +70,8 @@ public class FsIndex_bag iterator() {
-return new FsIterator_bag(this, getDetectIllegalIndexUpdates(), 
getTypeCode());
-  }
-
-  /*
-   * Iterator support 
-   */
-  boolean isValid(int itPos) {
-return index.isValid(itPos);
-  }
-  
-  int moveToFirst() {
-return index.moveToFirst();
-  }
-
-  int moveToLast() {
-return index.moveToLast();
-  }
-  
-  int moveToNext(int itPos) {
- return index.moveToNext(itPos);
-  }
-  
-  int moveToPrevious(int itPos) {
-return index.moveToPrevious(itPos);
-  }
-  
-  T get(int itPos) {
-return (T) index.get(itPos);
+return new FsIterator_bag(this, type);
   }
   
   ObjHashSet getObjHashSet() {




svn commit: r1742606 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:05:29 2016
New Revision: 1742606

URL: http://svn.apache.org/viewvc?rev=1742606&view=rev
Log:
[UIMA-4664] remove unused methods

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java?rev=1742606&r1=1742605&r2=1742606&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_flat.java
 Fri May  6 20:05:29 2016
@@ -90,7 +90,7 @@ public class FsIndex_flat

svn commit: r1742607 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:08:13 2016
New Revision: 1742607

URL: http://svn.apache.org/viewvc?rev=1742607&view=rev
Log:
[UIMA-4664] convert cache from arraylist to array.  convert some stream ops to 
conventional ops. add internal getTypecode(). Add some @Override annotations

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java?rev=1742607&r1=1742606&r2=1742607&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_iicp.java
 Fri May  6 20:08:13 2016
@@ -48,7 +48,7 @@ class FsIndex_iicp> cachedSubFsLeafIndexes = 
null;
+  FsIndex_singletype[] cachedSubFsLeafIndexes = null;
   
   // VOLATILE to permit double-checked locking technique
   private volatile boolean isIteratorCacheSetup = false;
@@ -71,14 +71,14 @@ class FsIndex_iicp lii = 
cachedSubFsLeafIndexes.get(i); 
+FsIndex_singletype lii = cachedSubFsLeafIndexes[i]; 
 sb.append("  cache ").append(i++);
 sb.append("  ").append(lii).append('\n');
   }
-  if (cachedSubFsLeafIndexes.size() > 3) {
-sb.append(" ... and " + (cachedSubFsLeafIndexes.size() - 3) + " 
more\n");
+  if (cachedSubFsLeafIndexes.length > 3) {
+sb.append(" ... and " + (cachedSubFsLeafIndexes.length - 3) + " 
more\n");
   }
 }
 return sb.toString();
@@ -145,7 +145,7 @@ class FsIndex_iicp> tempSubIndexCache 
= new ArrayList>();
   sortedTypeCodes = (indexKind == FSIndex.SORTED_INDEX) ? new int[size] : 
null;
 
-  initOneType(rootType, tempSubIndexCache, indexKind);
+  initOneTypeThenAllSubtypes(rootType, tempSubIndexCache, indexKind);
   
   
 //  Stream typePlusSubtypes = (indexKind == 
FSIndex.DEFAULT_BAG_INDEX) 
@@ -167,7 +167,7 @@ class FsIndex_iicp> cache, int indexKind) {
+  /**
+   * This method inits one type then calls itself for all direct subtypes
+   * @param ti
+   * @param cache
+   * @param indexKind
+   */
+  private void initOneTypeThenAllSubtypes(TypeImpl ti, 
ArrayList> cache, int indexKind) {
 
 final FsIndex_singletype singleIndex =  
fsIndexRepositoryImpl.getIndexBySpec(
ti.getCode(),
@@ -191,7 +197,7 @@ class FsIndex_iicp cp) {
 final int typeCode1 = ((TypeImpl) 
this.fsIndex_singletype.getType()).getCode();
 final int typeCode2 = ((TypeImpl) 
cp.fsIndex_singletype.getType()).getCode();
@@ -223,9 +230,14 @@ class FsIndex_iicp iicp.size()).sum();
+int size = 0;
+for (FsIndex_singletype iicp : cachedSubFsLeafIndexes) {
+  size += iicp.size();
+}
+return size;
   }
   
   public boolean isEmpty() {
@@ -240,10 +252,10 @@ class FsIndex_iicp> localIc = 
this.cachedSubFsLeafIndexes;
-final int len = localIc.size();
+final FsIndex_singletype[] localIc = 
this.cachedSubFsLeafIndexes;
+final int len = localIc.length;
 for (int i = 0; i < len; i++) {
-  if (localIc.get(i).size() > 0) {
+  if (localIc[i].size() > 0) {
 return true;
   };
 }
@@ -260,12 +272,12 @@ class FsIndex_iicp> localIc = 
this.cachedSubFsLeafIndexes;
-final int len = localIc.size();
+final FsIndex_singletype[] localIc = 
this.cachedSubFsLeafIndexes;
+final int len = localIc.length;
 final int lim = Math.min(3, len);
 int size = 0;
 for (int i = 0; i < lim; i++) {
-  size += localIc.get(i).size();
+  size += localIc[i].size();
 }
 size += len - lim;
 return size;
@@ -400,16 +412,21 @@ class FsIndex_iicp iterator() {
 createIndexIteratorCache();  

-return (cachedSubFsLeafIndexes.size() == 1)
+return (cachedSubFsLeafIndexes.length == 1)
? (FSIterator) fsIndex_singletype.iterator()
: fsIndex_singletype.isSorted()
  ? new FsIterator_subtypes_ordered(this)
@@ -419,7 +436,7 @@ class FsIndex_iicp iteratorUnordered() {
 createIndexIteratorCache();  
 
-return (cachedSubFsLeafIndexes.size() == 1)
+return (cachedSubFsLeafIndexes.length == 1)
? (FSIterator) fsIndex_singletype.iterator()
: new FsIterator_aggregation_common(new 
FsIterator_subtypes_unordered(this).iterators, fsIndex_singletype); 
   }




svn commit: r1742608 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:12:35 2016
New Revision: 1742608

URL: http://svn.apache.org/viewvc?rev=1742608&view=rev
Log:
[UIMA-4664] switch to OrderedFsSet_array impl, make use of 2 comparators (one 
with ID); insure they're == when Set (not Sorted).  Remove special case of 
batching adds - now done by OrderedFsSet_array impl. Be explicit about use of 
comparator with or without ID.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java?rev=1742608&r1=1742607&r2=1742608&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_set_sorted.java
 Fri May  6 20:12:35 2016
@@ -19,19 +19,17 @@
 
 package org.apache.uima.cas.impl;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NavigableSet;
-import java.util.SortedSet;
-import java.util.TreeSet;
 
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.FSIndexComparator;
+import org.apache.uima.internal.util.OrderedFsSet_array;
 import org.apache.uima.jcas.cas.TOP;
 
 /**
@@ -40,8 +38,6 @@ import org.apache.uima.jcas.cas.TOP;
  * Differences:
  *   - Number of "equal" (but not identical) FSs: Set: 1, Sorted, N
  *   - Iterators: Set: unordered, Sorted: ordered 
- * 
- * The FSs are kept in a TreeSet in an ordering, to permit faster searching.
  *   
  * This is an index over just one type (excluding subtypes)
  * 
@@ -54,87 +50,115 @@ import org.apache.uima.jcas.cas.TOP;
  */
 public class FsIndex_set_sorted extends 
FsIndex_singletype {
   
-  /**
-   * This impl of sorted set interface allows using the bulk add operation 
implemented in Java's 
-   * TreeSet - that tests if the argument being passed in is an instance of 
SortedSet and does a fast insert.
-   */
-  final private SortedSet ss = new SortedSet() {
-
-@Override
-public int size() { return itemsToBeAdded.size(); }
-@Override
-public boolean isEmpty() { return false; }
-@Override
-public boolean contains(Object o) { throw new 
UnsupportedOperationException(); }
-@Override
-public Iterator iterator() { return itemsToBeAdded.iterator(); }
-@Override
-public Object[] toArray() { throw new UnsupportedOperationException(); }
-@Override
-public  U[] toArray(U[] a) { throw new UnsupportedOperationException(); 
}
-@Override
-public boolean add(T e) { throw new UnsupportedOperationException(); }
-@Override
-public boolean remove(Object o) { throw new 
UnsupportedOperationException(); }
-@Override
-public boolean containsAll(Collection c) { throw new 
UnsupportedOperationException(); }
-@Override
-public boolean addAll(Collection c) { throw new 
UnsupportedOperationException(); }
-@Override
-public boolean retainAll(Collection c) { throw new 
UnsupportedOperationException(); }
-@Override
-public boolean removeAll(Collection c) { throw new 
UnsupportedOperationException(); }
-@Override
-public void clear() { throw new UnsupportedOperationException(); }
-@Override
-public Comparator comparator() { return comparator; }
-@Override
-public SortedSet subSet(FeatureStructure fromElement, FeatureStructure 
toElement) { throw new UnsupportedOperationException(); }
-@Override
-public SortedSet headSet(FeatureStructure toElement) { throw new 
UnsupportedOperationException(); }
-@Override
-public SortedSet tailSet(FeatureStructure fromElement) { throw new 
UnsupportedOperationException(); }
-@Override
-public T first() { throw new UnsupportedOperationException(); }
-@Override
-public T last() { throw new UnsupportedOperationException(); }  
-
-
-  };
+//  /**
+//   * This impl of sorted set interface allows using the bulk add operation 
implemented in Java's 
+//   * TreeSet - that tests if the argument being passed in is an instance of 
SortedSet and does a fast insert.
+//   */
+//  final private SortedSet ss = new SortedSet() {
+//
+//@Override
+//public int size() { return itemsToBeAdded.size(); }
+//@Override
+//public boolean isEmpty() { return false; }
+//@Override
+//public boolean contains(Object o) { throw new 
UnsupportedOperationException(); }
+//@Override
+

svn commit: r1742609 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:15:04 2016
New Revision: 1742609

URL: http://svn.apache.org/viewvc?rev=1742609&view=rev
Log:
[UIMA-4674] remove unused methods; support Misc class move, don't do concurrent 
modification exception detection in this class - is in subclasses.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java?rev=1742609&r1=1742608&r2=1742609&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIndex_singletype.java
 Fri May  6 20:15:04 2016
@@ -30,8 +30,8 @@ import org.apache.uima.cas.FeatureStruct
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.FSIndexComparator;
 import org.apache.uima.cas.admin.LinearTypeOrder;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
 
 /**
  * The common (among all index kinds - set, sorted, bag) info for an index 
over 1 type (excluding subtypes)
@@ -64,7 +64,7 @@ public abstract class FsIndex_singletype
   // For each key, the comparison to use.
   final private boolean[] isReverse;// true = reverse, false = standard
 
-  final private TypeImpl type; // The type of this
+  protected final TypeImpl type; // The type of this
   
   final private int typeCode;
   
@@ -132,9 +132,8 @@ public abstract class FsIndex_singletype
* Adding FS to an index.
*   not in upper interfaces because it's internal use only - called via 
addToIndexes etc.
* @param fs the fs to be added
-   * @return true if the fs was added, (an identical one wasn't already there)
*/
-  abstract boolean insert(T fs);  // not in upper interfaces because it's 
internal use only
+  abstract void insert(T fs);  // not in upper interfaces because it's 
internal use only
 
   /**
* @param fs - the Feature Structure to be removed.
@@ -177,10 +176,6 @@ public abstract class FsIndex_singletype
 return this.indexType;
   }
 
-  public int[] getDetectIllegalIndexUpdates() {
-return this.casImpl.indexRepository.detectIllegalIndexUpdates;
-  }
-
   /**
* @param fs1 -
* @param fs2 -
@@ -341,13 +336,6 @@ public abstract class FsIndex_singletype
 return this;
   }
   
-  /**
-   * used to see if a particular fs is in the index  
-   * @param fs
-   * @return
-   */
-  public abstract boolean containsEq(FeatureStructureImplC fs);
-
   boolean isSetOrSorted() {
 return indexType == FSIndex.SET_INDEX || indexType == FSIndex.SORTED_INDEX;
   }




svn commit: r1742610 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:15:50 2016
New Revision: 1742610

URL: http://svn.apache.org/viewvc?rev=1742610&view=rev
Log:
[UIMA-4674] minor performance tweaks.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java?rev=1742610&r1=1742609&r2=1742610&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_aggregation_common.java
 Fri May  6 20:15:50 2016
@@ -42,7 +42,7 @@ import org.apache.uima.cas.Type;
 class FsIterator_aggregation_common 
   implements LowLevelIterator {
   
-  final private FSIterator[] iterators;
+  final private FSIterator[] iterators; // not just for single-type 
iterators
   
   private int lastValidIndex;
   
@@ -117,7 +117,7 @@ class FsIterator_aggregation_common it = iterators[lastValidIndex];
-it.moveToNext();
+it.moveToNextNvc();
 
 if (it.isValid()) {
   return;
@@ -161,8 +161,14 @@ class FsIterator_aggregation_common it = iterators[lastValidIndex];
-it.moveToPrevious();
+it.moveToPreviousNvc();
 
 if (it.isValid()) {
   return;




svn commit: r1742612 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:17:36 2016
New Revision: 1742612

URL: http://svn.apache.org/viewvc?rev=1742612&view=rev
Log:
[UIMA-4674] remove unused methods; change to  concurrent modification exception 
detection, minor perf tweaks

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java?rev=1742612&r1=1742611&r2=1742612&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_bag.java
 Fri May  6 20:17:36 2016
@@ -34,10 +34,11 @@ class FsIterator_bag fsBagIndex; // just an optimization, is == to 
fsLeafIndexImpl from super class, allows dispatch w/o casting
 
-  FsIterator_bag(FsIndex_bag fsBagIndex, int[] detectIllegalIndexUpdates, 
int typeCode) {
-super(detectIllegalIndexUpdates, typeCode, null);
+  FsIterator_bag(FsIndex_bag fsBagIndex, TypeImpl ti) {
+super(ti, null);  // null: null comparator for bags
 this.fsBagIndex = fsBagIndex;  // need for copy()
 bag = (ObjHashSet) fsBagIndex.getObjHashSet();
+resetConcurrentModification();
 moveToFirst();
   }
 
@@ -119,6 +120,13 @@ class FsIterator_bag copy() {
-FsIterator_bag copy = new FsIterator_bag(this.fsBagIndex, 
this.detectIllegalIndexUpdates, this.typeCode);
+FsIterator_bag copy = new FsIterator_bag(this.fsBagIndex, this.ti);
 copy.position = position;
 copy.isGoingForward = isGoingForward;   
 return copy;
@@ -154,5 +162,14 @@ class FsIterator_bag

svn commit: r1742613 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:23:14 2016
New Revision: 1742613

URL: http://svn.apache.org/viewvc?rev=1742613&view=rev
Log:
[UIMA-4664] change to concurrent mod detection, add moveToPrevious without 
isValid check, be explicit about which comparator is being used

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java?rev=1742613&r1=1742612&r2=1742613&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_set_sorted.java
 Fri May  6 20:23:14 2016
@@ -25,16 +25,20 @@ import java.util.NavigableSet;
 import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.internal.util.OrderedFsSet_array;
 import org.apache.uima.jcas.cas.TOP;
 
+/**
+ * @param  the type of FSs being returned from the iterator, supplied by 
the calling context
+ */
 class FsIterator_set_sorted extends 
FsIterator_singletype {
 
   // We use TOP instead of T because the 
   // signature of getting a "matching" element limits the type to the declared 
type, and 
   // in UIMA we can use, say an Annotation instance as a moveTo arg, for a 
navSet of some subtype of Annotation.
-  final private NavigableSet navSet;  // == 
fsSortIndex.getNavigableSet()
+  final private NavigableSet navSet;  // == fsSortIndex.getNavigableSet()
   
-  final private FsIndex_set_sorted fsSetSortIndex;
+  final private FsIndex_set_sorted fsSetSortIndex;  // only for 
ll_getIndex, backwards compatibility
   
   private T currentElement;
   
@@ -50,13 +54,14 @@ class FsIterator_set_sorted iterator; 
+  private Iterator iterator; // changes according to direction, starting 
point, etc.
   
-  FsIterator_set_sorted(FsIndex_set_sorted fsSetSortIndex, int[] 
detectIllegalIndexUpdates, int typeCode, Comparator comp) {
-super(detectIllegalIndexUpdates, typeCode, comp);
+  FsIterator_set_sorted(FsIndex_set_sorted fsSetSortIndex, TypeImpl ti, 
Comparator comp) {
+super(ti, comp);
 this.fsSetSortIndex = fsSetSortIndex;
-this.navSet = (NavigableSet) 
fsSetSortIndex.getNavigableSet();
+this.navSet = (NavigableSet) fsSetSortIndex.getNavigableSet(); // 
cast to TOP to allow keys outside of range of returned values
 iterator = (Iterator) navSet.iterator();  // can't use 
fsSortIndex.iterator - that recursively calls this
+resetConcurrentModification(); // follow create of iterator, which, in 
turn, does any pending batch processing
   }
 
   @Override
@@ -64,16 +69,18 @@ class FsIterator_set_sorted) navSet.iterator();
+//fsSetSortIndex.maybeProcessBulkAdds();
+iterator = (Iterator) navSet.iterator();  // in case iterator was 
reverse, etc.
+resetConcurrentModification(); // follow create of iterator, which, in 
turn, does any pending batch processing
 isGoingForward = true;
 isCurrentElementFromLastGet = false;
   }
 
   @Override
   public void moveToLast() {
-resetConcurrentModification();
+//fsSetSortIndex.maybeProcessBulkAdds();
 iterator =  (Iterator) navSet.descendingIterator();
+resetConcurrentModification(); // follow create of iterator, which, in 
turn, does any pending batch processing
 isGoingForward = false;
 isCurrentElementFromLastGet = false;
   }
@@ -88,7 +95,7 @@ class FsIterator_set_sorted) navSet.tailSet(currentElement, 
false).iterator();
+  iterator = (Iterator) navSet.tailSet((TOP)currentElement, 
false).iterator();
   isGoingForward = true;
   isCurrentElementFromLastGet = false;
 }
@@ -114,8 +121,14 @@ class FsIterator_set_sorted) navSet.headSet(currentElement, 
false).descendingIterator();
+  iterator = (Iterator) navSet.headSet((TOP)currentElement, 
false).descendingIterator();
   isGoingForward = false;
   isCurrentElementFromLastGet = false;
 }  
@@ -140,7 +153,7 @@ class FsIterator_set_sorted copy() {
-return new FsIterator_set_sorted(this.fsSetSortIndex, 
this.detectIllegalIndexUpdates, typeCode, this.comparator);
+return new FsIterator_set_sorted(this.fsSetSortIndex, ti, 
this.comparator);
   }
 
   /**
@@ -178,39 +191,58 @@ class FsIterator_set_sorted it = (Iterator) navSet.headSet(fs, 
false).descendingIterator();
-
+currentElement = null;   
+//fsSetSortIndex.maybeProcessBulkAdds();  // not needed, always done due 
to previous size() call when creating iterator
+Iterator it = (Iterator) navSet.headSet(fs, 
false).desce

svn commit: r1742614 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:24:28 2016
New Revision: 1742614

URL: http://svn.apache.org/viewvc?rev=1742614&view=rev
Log:
[UIMA-4664] change to concurrent mod detection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java?rev=1742614&r1=1742613&r2=1742614&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_singletype.java
 Fri May  6 20:24:28 2016
@@ -13,14 +13,14 @@ public abstract class FsIterator_singlet
 
   private int modificationSnapshot; // to catch illegal modifications
 
-  /**
-   * This is a ref to the shared value in the FSIndexRepositoryImpl
-   * OR it may be null which means skip the checking (done for some internal 
routines
-   * which know they are not updating the index, and assume no other thread is)
-   */
-  final protected int[] detectIllegalIndexUpdates; // shared copy with Index 
Repository
+//  /**
+//   * This is a ref to the shared value in the FSIndexRepositoryImpl
+//   * OR it may be null which means skip the checking (done for some internal 
routines
+//   * which know they are not updating the index, and assume no other thread 
is)
+//   */
+//  final protected int[] detectIllegalIndexUpdates; // shared copy with Index 
Repository
 
-  protected final int typeCode;  // needed for the detect concurrent 
modification
+  protected final TypeImpl ti;  
   
   /**
* The generic type is FeatureStructure to allow comparing between
@@ -29,23 +29,27 @@ public abstract class FsIterator_singlet
*/
   final protected Comparator comparator;
 
-  public FsIterator_singletype(int[] detectConcurrentMods, int typeCode, 
Comparator comparator){
+  public FsIterator_singletype(TypeImpl ti, Comparator 
comparator){
 this.comparator = comparator;
-this.detectIllegalIndexUpdates = detectConcurrentMods;
-this.typeCode = typeCode;
-resetConcurrentModification();
+//this.detectIllegalIndexUpdates = detectConcurrentMods;
+this.ti = ti;
+//resetConcurrentModification();  // can't do here, each subtype must 
finish it's initialization first
 // subtypes do moveToFirst after they finish initialization
   }
-
+
+  protected abstract int getModificationCountFromIndex();
+  
   final protected > I checkConcurrentModification() {
-if ((null != detectIllegalIndexUpdates) && (modificationSnapshot != 
detectIllegalIndexUpdates[typeCode])) {
+if (modificationSnapshot != getModificationCountFromIndex()) {
+//if ((null != detectIllegalIndexUpdates) && (modificationSnapshot != 
detectIllegalIndexUpdates[typeCode])) {
   throw new ConcurrentModificationException();
 }
 return (I) this;
   }
   
   protected void resetConcurrentModification() {  
-this.modificationSnapshot = (null == this.detectIllegalIndexUpdates) ? 0 : 
this.detectIllegalIndexUpdates[typeCode];
+this.modificationSnapshot = // (null == this.detectIllegalIndexUpdates) ? 
0 : this.detectIllegalIndexUpdates[typeCode];
+  getModificationCountFromIndex();
   }
 
   @Override
@@ -61,9 +65,9 @@ public abstract class FsIterator_singlet
   
   @Override
   public String toString() {
-Type type = this.ll_getIndex().getType();
+Type type = ti;
 StringBuilder sb = new 
StringBuilder(this.getClass().getSimpleName()).append(":").append(System.identityHashCode(this));
-sb.append(" over Type: 
").append(type.getName()).append(":").append(typeCode);
+sb.append(" over Type: 
").append(type.getName()).append(":").append(ti.getCode());
 sb.append(", size: ").append(this.ll_indexSize());
 return sb.toString();
   }




svn commit: r1742616 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: FSIndexRepositoryImpl.java FsIterator_subtypes.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:33:34 2016
New Revision: 1742616

URL: http://svn.apache.org/viewvc?rev=1742616&view=rev
Log:
[UIMA-4674] remove redundant empty fs iterator definition

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java?rev=1742616&r1=1742615&r2=1742616&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 Fri May  6 20:33:34 2016
@@ -1390,7 +1390,7 @@ public class FSIndexRepositoryImpl imple
 getAllIndexedFS(type, iteratorList);
 final int iteratorListSize = iteratorList.size();
 if (iteratorListSize == 0) {
-  return (LowLevelIterator) FsIterator_subtypes.FS_ITERATOR_EMPTY;
+  return (LowLevelIterator) 
LowLevelIterator.FS_ITERATOR_LOW_LEVEL_EMPTY;
 }
 if (iteratorListSize == 1) {
   return iteratorList.get(0);

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java?rev=1742616&r1=1742615&r2=1742616&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes.java
 Fri May  6 20:33:34 2016
@@ -51,31 +51,6 @@ public abstract class FsIterator_subtype
   public int ll_indexSize() {
 return ll_getIndex().size();
   }
-
-  final static FsIterator_subtypes FS_ITERATOR_EMPTY = new 
FsIterator_subtypes(null) {
-@Override
-public boolean isValid() {return false;}
-@Override
-public TOP get() throws NoSuchElementException { throw new 
NoSuchElementException(); }
-@Override
-public TOP getNvc() { throw new NoSuchElementException(); }
-@Override
-public void moveToNext() {}
-@Override
-public void moveToNextNvc() {}
-@Override
-public void moveToPrevious() {}
-@Override
-public void moveToFirst() {}
-@Override
-public void moveToLast() {}
-@Override
-public void moveTo(FeatureStructure fs) {}
-@Override
-public FSIterator copy() { return this; }
-@Override
-public int ll_indexSize() { return 0; }
-  };
   
   @Override
   public String toString() {




svn commit: r1742617 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:34:28 2016
New Revision: 1742617

URL: http://svn.apache.org/viewvc?rev=1742617&view=rev
Log:
[UIMA-4664] convert cache from arraylist to array. 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java?rev=1742617&r1=1742616&r2=1742617&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_list.java
 Fri May  6 20:34:28 2016
@@ -47,15 +47,25 @@ public abstract class FsIterator_subtype
   // subsequently ignored - same effect
   private FsIterator_singletype[] initIterators() {
 iicp.createIndexIteratorCache();
-final ArrayList> cachedSubIndexes = 
iicp.cachedSubFsLeafIndexes;
+final FsIndex_singletype[] cachedSubIndexes = 
iicp.cachedSubFsLeafIndexes;
 
-FsIterator_singletype[] r = cachedSubIndexes.stream()
-.filter(leafIndex -> leafIndex.size() > 0)  // filter out empty ones   
  
-.map( index -> index.iterator())  // map fsIndex_singletype to an 
iterator over that
-.toArray(FsIterator_singletype[]::new);
+//FsIterator_singletype[] r = cachedSubIndexes.stream()
+//.filter(leafIndex -> leafIndex.size() > 0)  // filter out empty ones 

+//.map( index -> index.iterator())  // map fsIndex_singletype to an 
iterator over that
+//.toArray(FsIterator_singletype[]::new);
 
+ArrayList> r = new ArrayList<>();
+for (FsIndex_singletype leafIndex : 
iicp.cachedSubFsLeafIndexes) {
+  if (leafIndex.size() == 0) {
+continue;
+  }
+  r.add((FsIterator_singletype) leafIndex.iterator());
+}
+
 // if all are empty, put the first one in (to avoid handling 0 as a 
special case)
-return (r.length != 0) ? r : new FsIterator_singletype[] 
{(FsIterator_singletype) cachedSubIndexes.get(0).iterator()};
+return (r.size() != 0) 
+ ? r.toArray(new FsIterator_singletype[r.size()]) 
+ : new FsIterator_singletype[] {(FsIterator_singletype) 
cachedSubIndexes[0].iterator()};
   }
 
   /* (non-Javadoc)
@@ -63,7 +73,11 @@ public abstract class FsIterator_subtype
*/
   @Override
   public int ll_indexSize() {
-return Arrays.stream(iterators).mapToInt(it -> 
it.ll_getIndex().size()).sum();
+int sz = 0;
+for (FsIterator_singletype it : iterators) {
+  sz += it.ll_getIndex().size();  
+}
+return sz;
   }
   
 }




svn commit: r1742618 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:35:36 2016
New Revision: 1742618

URL: http://svn.apache.org/viewvc?rev=1742618&view=rev
Log:
[UIMA-4674] add moveToPreviousNvc method, moved Misc class

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java?rev=1742618&r1=1742617&r2=1742618&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_ordered.java
 Fri May  6 20:35:36 2016
@@ -24,6 +24,7 @@ import java.util.NoSuchElementException;
 
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.internal.util.Misc;
 
 /**
  * Performs an ordered iteration among a set of iterators, each one 
corresponding to
@@ -185,6 +186,11 @@ public class FsIterator_subtypes_ordered
   return;
 }
 
+moveToPreviousNvc();
+  }
+  
+  @Override
+  public void moveToPreviousNvc() {
 final FsIterator_singletype it0 = 
iterators[0].checkConcurrentModification();
 if (!this.wentForward) {
   it0.moveToPrevious();




svn commit: r1742619 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: FsIterator_subtypes_snapshot.java FsIterator_subtypes_unordered.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:36:12 2016
New Revision: 1742619

URL: http://svn.apache.org/viewvc?rev=1742619&view=rev
Log:
[UIMA-4674] add moveToPreviousNvc method

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java?rev=1742619&r1=1742618&r2=1742619&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_snapshot.java
 Fri May  6 20:36:12 2016
@@ -98,6 +98,11 @@ public class FsIterator_subtypes_snapsho
   pos--;
 }
   }
+  
+  @Override
+  public void moveToPreviousNvc() {
+pos--;
+  }
 
   /* (non-Javadoc)
* @see org.apache.uima.cas.FSIterator#moveToFirst()

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java?rev=1742619&r1=1742618&r2=1742619&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FsIterator_subtypes_unordered.java
 Fri May  6 20:36:12 2016
@@ -50,6 +50,8 @@ public class FsIterator_subtypes_unorder
   @Override
   public void moveToPrevious() {throw new UnsupportedOperationException();}
   @Override
+  public void moveToPreviousNvc() {throw new UnsupportedOperationException();}
+  @Override
   public void moveToFirst() {}  // can't throw, should be a no-op.
   @Override
   public void moveToLast() {throw new UnsupportedOperationException();}




svn commit: r1742620 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:37:01 2016
New Revision: 1742620

URL: http://svn.apache.org/viewvc?rev=1742620&view=rev
Log:
[UIMA-4674] add moveToPreviousNvc method

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java?rev=1742620&r1=1742619&r2=1742620&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LowLevelIterator.java
 Fri May  6 20:37:01 2016
@@ -97,6 +97,8 @@ public interface LowLevelIterator

svn commit: r1742621 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:42:30 2016
New Revision: 1742621

URL: http://svn.apache.org/viewvc?rev=1742621&view=rev
Log:
[UIMA-4674] tweak - when walking the list, replace empty weakrefs with nulls

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java?rev=1742621&r1=1742620&r2=1742621&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Id2FS.java
 Fri May  6 20:42:30 2016
@@ -24,8 +24,8 @@ import java.util.ArrayList;
 import java.util.function.Consumer;
 
 import org.apache.uima.cas.CASRuntimeException;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
 
 /**
  * A map from ints representing FS id's (or "addresses") to those FSs
@@ -50,7 +50,7 @@ public class Id2FS {
*/
   public static final String DISABLE_FS_GC = 
"uima.disable_feature_structure_garbage_collection";
   
-  private static final boolean IS_DISABLE_FS_GC = true || // debug
+  public static final boolean IS_DISABLE_FS_GC =   // true || // debug
   Misc.getNoValueSystemProperty(DISABLE_FS_GC);
   
   final private ArrayList id2fsw;
@@ -72,6 +72,9 @@ public class Id2FS {
   }
   
   public void replaceWithStrongRef(TOP fs) {
+if (IS_DISABLE_FS_GC) {
+  return;
+} 
 id2fsw.set(fs._id, fs);  
   }
  
@@ -154,11 +157,21 @@ public class Id2FS {
 //  }
 //}
 // in this impl, the id is the index.
-for (Object o : id2fsw.subList(fromId, id2fsw.size())) {
-  TOP fs = (o == null) ? null
-   : (o instanceof TOP) ? (TOP) o 
-: (TOP) 
((WeakReference)o).get(); 
-  if (null != fs) {
+final int sz = id2fsw.size();
+for (int i = fromId; i < sz; i++) {
+  Object o = id2fsw.get(i);
+  if (o == null) { 
+continue;
+  }
+  
+  if (o instanceof TOP) {
+action.accept((TOP)o);
+  } else {
+TOP fs = ((WeakReference)o).get();
+if (fs == null) {
+  id2fsw.set(i, null);
+  continue;
+}
 action.accept(fs);
   }
 }   




svn commit: r1742622 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:43:54 2016
New Revision: 1742622

URL: http://svn.apache.org/viewvc?rev=1742622&view=rev
Log:
[UIMA-4674] add some @Override annotations, tweak generic types, add 
moveToPreviousNvc method

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java?rev=1742622&r1=1742621&r2=1742622&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/Subiterator.java
 Fri May  6 20:43:54 2016
@@ -76,7 +76,7 @@ public class Subiterator it;
+  private final FSIterator it;
 
   private final FSIndexRepositoryImpl fsIndexRepo;
   
@@ -128,7 +128,7 @@ public class Subiterator) it;
 this.boundingAnnotation = this.isBounded ? (Annotation) boundingAnnotation 
: null;
 this.boundingBegin = (boundingAnnotation == null) ? boundingBegin : 
boundingAnnotation.getBegin();
 this.boundingEnd = (boundingAnnotation == null) ? boundingEnd : 
boundingAnnotation.getEnd();
@@ -161,7 +161,7 @@ public class Subiterator annotationComparator = 
getAnnotationComparator();
+Comparator annotationComparator = getAnnotationComparator();
 while (isValid() && (0 == annotationComparator.compare(boundingAnnotation, 
it.get( {
   it.moveToNext();
 }
   }
   
-  private Comparator getAnnotationComparator() {
+  private Comparator getAnnotationComparator() {
 return fsIndexRepo.getAnnotationFsComparator();
   }
   
@@ -223,7 +223,7 @@ public class Subiterator annotationComparator = 
getAnnotationComparator();
+  Comparator annotationComparator = getAnnotationComparator();
   pos = Collections.binarySearch(this.list, (Annotation) fs, 
annotationComparator);
   if (pos >= 0) {
 if (!isValid()) {
@@ -558,7 +564,7 @@ public class Subiterator copy() {
 Subiterator copy = new Subiterator(
-this.it.copy(), this.boundingAnnotation, this.boundingBegin, 
this.boundingEnd, this.ambiguous, this.strict, this.isBounded, 
this.fsIndexRepo);
+(FSIterator) this.it.copy(), this.boundingAnnotation, 
this.boundingBegin, this.boundingEnd, this.ambiguous, this.strict, 
this.isBounded, this.fsIndexRepo);
 copy.list = this.list;  // non-final things
 copy.pos  = this.pos;
 return copy;




svn commit: r1742625 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:48:41 2016
New Revision: 1742625

URL: http://svn.apache.org/viewvc?rev=1742625&view=rev
Log:
[UIMA-4674] change the typeCode and friends to a short (this limits the number 
of types to 32767), in order to increase locality of reference. removed unused 
booleans. Change allSuperTypes to array, and staticMergedFeaturesList, 
staticMergedIntFeaturesList, and staticMergedRefFeaturesList, to Array.  
support arrays of typed FSs

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java?rev=1742625&r1=1742624&r2=1742625&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
 Fri May  6 20:48:41 2016
@@ -36,7 +36,9 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
 import org.apache.uima.cas.admin.CASAdminException;
 import org.apache.uima.cas.impl.SlotKinds.SlotKind;
-import org.apache.uima.util.Misc;
+import org.apache.uima.internal.util.Misc;
+import org.apache.uima.jcas.cas.CommonArray;
+import org.apache.uima.jcas.cas.TOP;
 
 /**
  * The implementation of types in the type system.
@@ -55,9 +57,9 @@ public class TypeImpl implements Type, C
   private final String name;// x.y.Foo
   private final String shortName;   // Foo
   
-  private final int typeCode;   // subtypes always have typecodes 
> this one and < typeCodeNextSibling
-  private   int depthFirstCode; // assigned at commit time
-  private   int depthFirstNextSibling;  // for quick subsumption testing, 
set at commit time
+  private final short typeCode;   // subtypes always have 
typecodes > this one and < typeCodeNextSibling
+  private   short depthFirstCode; // assigned at commit time
+  private   short depthFirstNextSibling;  // for quick subsumption 
testing, set at commit time
 
   private final TypeSystemImpl tsi ; // the Type System instance this type 
belongs to.
  // This means that built-in types have 
multiple instances, so this field can vary.
@@ -92,6 +94,19 @@ public class TypeImpl implements Type, C
* true for FSarrays non-arrays having 1 or more refs to FSs
*/
   boolean hasRefFeature;  // true for FSarrays non-arrays having 1 or more 
refs to FSs
+//  /**
+//   * true if only has int slots, no ref slots
+//   */
+//  boolean hasOnlyInts;
+//  /**
+//   * true if only has ref slots, no int slots
+//   */
+//  boolean hasOnlyRefs;
+//  
+//  /**
+//   * true if has no int or data slots
+//   */
+//  boolean hasNoSlots;
   
   
   /* * type hierarchy */
@@ -100,23 +115,26 @@ public class TypeImpl implements Type, C
   /**
* All supertypes, in order, starting with immediate (nearest) supertype
*/
-  private final List allSuperTypes = new ArrayList<>();  
+  private final TypeImpl[] allSuperTypes;  
   
   private final List directSubtypes = new ArrayList<>();
 
   //   Features  *
   private final Map staticMergedFeatures = new 
LinkedHashMap<>(1); // set to null at commit time
-  private final List staticMergedFeaturesList = new 
ArrayList<>(0);  // set after commit
+  private FeatureImpl[] staticMergedFeaturesList = null;  // set after commit
   private final List staticMergedFeaturesIntroducedByThisType = 
new ArrayList<>(0);
   
   /**
* Map from adjusted offset in int features to feature
+   * Corrects for Long/Double values taking 2 int slots
+   * Set at commit time
*/
-  private final List staticMergedIntFeaturesList = new 
ArrayList<>(0);
+  private FeatureImpl[] staticMergedIntFeaturesList;
   /**
* Map from adjusted offset in ref features to feature
+   * Set at commit time
*/
-  private final List staticMergedRefFeaturesList = new 
ArrayList<>(0);
+  private FeatureImpl[] staticMergedRefFeaturesList;
   
   /**
* The number of used slots needed = total number of features minus those 
represented by fields in JCas cover classes
@@ -145,6 +163,7 @@ public class TypeImpl implements Type, C
 //setter_funct_intfc_class = null;
 
 slotKind = TypeSystemImpl.getSlotKindFromType(this);
+this.allSuperTypes = null;
   }
   
   /**
@@ -170,20 +189,26 @@ public class TypeImpl implements Type, C
 this.isFeatureFinal = false;
 this.isLongOrDouble = name.equals(CAS.TYPE_NAME_LONG) || 
name.equals(CAS.TYPE_

svn commit: r1742626 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:50:01 2016
New Revision: 1742626

URL: http://svn.apache.org/viewvc?rev=1742626&view=rev
Log:
[UIMA-4674] support arrays of typed FSs

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java?rev=1742626&r1=1742625&r2=1742626&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_array.java
 Fri May  6 20:50:01 2016
@@ -19,7 +19,6 @@
 
 package org.apache.uima.cas.impl;
 
-import org.apache.uima.cas.Type;
 import org.apache.uima.cas.impl.SlotKinds.SlotKind;
 
 public class TypeImpl_array extends TypeImpl implements TypeSystemConstants {
@@ -94,24 +93,31 @@ public class TypeImpl_array extends Type
 //   xxx[] is the supertype of FSArray
 // (this second relation because all we can generate are instances of 
FSArray
 // and we must be able to assign them to xxx[] )
+//   *** Correction: there is a way to generate instances of xxx[] - via 
ll_createArray and CASImpl.createTempArray ***
 
 
 final TypeImpl superType = this;
 final int superTypeCode = getCode();
 
 if (superTypeCode == fsArrayTypeCode) {
-  return !subType.isPrimitiveArrayType();
+  return !subType.isPrimitiveArrayType();// primitive 
 }
 
 if (subType.getCode() == fsArrayTypeCode) {
-  return superTypeCode == arrayBaseTypeCode ||
+  return superTypeCode == arrayBaseTypeCode ||  // this subsumes FSArray 
only if this is arrayBaseTypeCode, or 
+//   this is some 
Array of specific FSs (seems wrong)
  !isPrimitiveArrayType();
 }
 
-// at this point, we could have arrays of other primitive types, or
-// arrays of specific types: xxx[]
-
-// If both types are arrays, simply compare the components.
+// at this point, the super type and the subtype are 
+//  both arrays, 
+//  not fsArrays
+//  not equal
+
+if (superType.isPrimitiveArrayType() || subType.isPrimitiveArrayType()) {
+  return false; 
+}
+
 return getComponentType().subsumes(subType.getComponentType());
  
 //} else if (isSubArray) {
@@ -121,4 +127,15 @@ public class TypeImpl_array extends Type
 //}
 
   }
+ 
+  /**
+   * @return true if this array type is a subtype of FSArray over a specific 
feature structure (other than TOP, or 
+   *  one of the primitives)
+   */
+  @Override
+  public boolean isTypedFsArray() {
+return componentType.isRefType && 
+   componentType.getCode() != fsArrayTypeCode && 
+   componentType.getCode() != topTypeCode;
+  }
 }




svn commit: r1742627 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:50:31 2016
New Revision: 1742627

URL: http://svn.apache.org/viewvc?rev=1742627&view=rev
Log:
no jira, comment change

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java?rev=1742627&r1=1742626&r2=1742627&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_primitive.java
 Fri May  6 20:50:31 2016
@@ -32,7 +32,7 @@ public class TypeImpl_primitive extends
   
   @Override
   public boolean subsumes(TypeImpl ti) {
-return ti == this;  // primitives don't subsume any other type except 
itself
+return ti == this;  // primitives don't subsume any other type except 
itself, except for string / stringsubtype (overrides)
   }
 
 }




svn commit: r1742628 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:54:50 2016
New Revision: 1742628

URL: http://svn.apache.org/viewvc?rev=1742628&view=rev
Log:
[UIMA-4674] string subtypes only subsume themselves.  Strings (not string 
subtypes) subsume string subtypes.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java?rev=1742628&r1=1742627&r2=1742628&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl_string.java
 Fri May  6 20:54:50 2016
@@ -37,4 +37,12 @@ public class TypeImpl_string extends Typ
 return true;
   }
   
+  @Override
+  public boolean subsumes(TypeImpl ti) {
+if (this.isStringSubtype()) {
+  return this == ti;  // a string subtype only can subsume itself
+}
+return ti.isStringOrStringSubtype();
+  }
+  
 }




svn commit: r1742629 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:56:00 2016
New Revision: 1742629

URL: http://svn.apache.org/viewvc?rev=1742629&view=rev
Log:
[UIMA-4673] reorg type systems constants into separate interface, which can 
then be added to any class to ref the values without prefix

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java

Added: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java?rev=1742629&view=auto
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java
 (added)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemConstants.java
 Fri May  6 20:56:00 2016
@@ -0,0 +1,104 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.uima.cas.impl;
+
+import org.apache.uima.cas.CAS;
+
+/**
+ * This interface defines static final constants for Type Systems
+ *   For the built-in types and features:
+ * - the type and feature codes
+ * - the adjOffsets
+ *
+ */
+public interface TypeSystemConstants {
+
+  /**
+   * built-in type codes
+   **/
+  // Code of root of hierarchy (will be 1 with current implementation)
+  static final int topTypeCode = 1;
+  static final int intTypeCode = 2;
+  static final int floatTypeCode = 3;
+  static final int stringTypeCode = 4;
+  static final int arrayBaseTypeCode = 5;
+  static final int fsArrayTypeCode = 6;
+  static final int floatArrayTypeCode = 7;
+  static final int intArrayTypeCode = 8;
+  static final int stringArrayTypeCode = 9;
+  // 10 list base
+  static final int fsListTypeCode = 11; // 11   fs list
+  static final int fsEListTypeCode = 12;// 12 empty fs list
+  static final int fsNeListTypeCode = 13;// 13 non-empty fs list
+  static final int floatListTypeCode = 14; // 14   float list
+  static final int floatEListTypeCode = 15;// 15 empty float list
+  static final int floatNeListTypeCode = 16;  // 16 non-empty float list
+  static final int intListTypeCode = 17; // 17   integer list
+  static final int intEListTypeCode = 18;  // 18 empty integer list
+  static final int intNeListTypeCode = 19; // 19 non-empty integer list
+  static final int stringListTypeCode = 20;  // 20   string list
+  static final int stringEListTypeCode = 21;  // 21 empty string list
+  static final int stringNeListTypeCode = 22;  // 22 non-empty string list
+
+  static final int booleanTypeCode = 23;
+  static final int byteTypeCode = 24;
+  static final int shortTypeCode = 25;
+  static final int longTypeCode = 26;
+  static final int doubleTypeCode = 27;
+  static final int booleanArrayTypeCode = 28;
+  static final int byteArrayTypeCode = 29;
+  static final int shortArrayTypeCode = 30;
+  static final int longArrayTypeCode = 31;
+  static final int doubleArrayTypeCode = 32;
+  static final int sofaTypeCode = 33;
+  static final int annotBaseTypeCode = 34;
+  static final int annotTypeCode = 35;
+  static final int docTypeCode = 36;  // DocumentAnnotation
+  static final int javaObjectTypeCode = 37;
+  static final int javaObjectArrayTypeCode = 38;
+
+  /**
+   * Static final constants for built-in features
+   */
+  static final int sofaNumFeatCode = 9;  // ref from another pkg
+  static final int sofaIdFeatCode = 10;
+  static final int sofaStringFeatCode = 13;
+  static final int sofaMimeFeatCode = 11;
+  static final int sofaUriFeatCode = 14;
+  static final int sofaArrayFeatCode = 12;
+  static final int annotBaseSofaFeatCode = 15; // ref from another pkg
+  static final int beginFeatCode = 16;
+  static final int endFeatCode = 17;
+  static final int langFeatCode = 18;
+
+  /**
+   * adjOffsets for builtin Features
+   */
+  static final TypeSystemImpl staticTsi = TypeSys

svn commit: r1742630 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 20:57:13 2016
New Revision: 1742630

URL: http://svn.apache.org/viewvc?rev=1742630&view=rev
Log:
[UIMA-4674] clarify this class doesn't serialize built-ins or arrays of typed 
FSs. 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java?rev=1742630&r1=1742629&r2=1742630&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystem2Xml.java
 Fri May  6 20:57:13 2016
@@ -22,6 +22,7 @@ package org.apache.uima.cas.impl;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
@@ -44,7 +45,7 @@ import org.xml.sax.SAXException;
  */
 public class TypeSystem2Xml {
   /**
-   * Converts a TypeSystem object to XML
+   * Converts a TypeSystem object to XML.  Built-in types and array types are 
not included.
* 
* @param aTypeSystem
*  the TypeSystem to convert
@@ -93,7 +94,7 @@ public class TypeSystem2Xml {
   typeDesc.setSupertypeName(superType.getName());
   LowLevelTypeSystem llts = aTypeSystem.getLowLevelTypeSystem();
   List featDescs = new ArrayList();
-  Iterator featIterator = type.getFeatureImpls().iterator();
+  Iterator featIterator = 
Arrays.asList(type.getFeatureImpls()).iterator();
   while (featIterator.hasNext()) {
 Feature feat = featIterator.next();
 if (!feat.getDomain().equals(type)) {




svn commit: r1742631 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:07:08 2016
New Revision: 1742631

URL: http://svn.apache.org/viewvc?rev=1742631&view=rev
Log:
[UIMA-4673] Misc class move, support for array values for some type impl 
things.  Add new check to prevent adding array type of specific FS after type 
system commit (to avoid then using this type as a name in a call to get an 
index over that type - that would fail because the iterator cache may have 
already been set up for that index, without this new 
added-after-type-system-commit type.  Add support for deserializing xmi / xcas 
arrays, where the receiving type system defines these values in the type system 
as being an array of a specific type - replace the more general type with the 
more specific type. 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java?rev=1742631&r1=1742630&r2=1742631&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
 Fri May  6 21:07:08 2016
@@ -65,6 +65,7 @@ import org.apache.uima.cas.admin.CASAdmi
 import org.apache.uima.cas.admin.TypeSystemMgr;
 import org.apache.uima.cas.impl.FSClassRegistry.JCasClassInfo;
 import org.apache.uima.cas.impl.SlotKinds.SlotKind;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.jcas.JCasRegistry;
 import org.apache.uima.jcas.cas.AnnotationBase;
 import org.apache.uima.jcas.cas.BooleanArray;
@@ -92,7 +93,6 @@ import org.apache.uima.jcas.cas.StringAr
 import org.apache.uima.jcas.cas.StringList;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.tcas.Annotation;
-import org.apache.uima.util.Misc;
 
 import com.strobel.assembler.metadata.Buffer;
 import com.strobel.assembler.metadata.ITypeLoader;
@@ -160,7 +160,7 @@ public class TypeSystemImpl implements T
   // private static final int INVALID_TYPE_CODE = 0;
   private static final int LEAST_FEATURE_CODE = 1;
   
-  private static final String ARRAY_TYPE_SUFFIX = "[]";
+  static final String ARRAY_TYPE_SUFFIX = "[]";
   
   /**
* HEAP_STORED_ARRAY flag is kept for ser/deserialization compatibility
@@ -302,7 +302,7 @@ public class TypeSystemImpl implements T
  
  final TypeImpl_javaObject javaObjectType;   // for Map, List, etc.
  final TypeImpl_array javaObjectArrayType;   // for arrays of these
- final TypeImpl listBaseType;
+ final TypeImpl  listBaseType;
   public final TypeImpl_list intListType;
   public final TypeImpl_list floatListType;
   public final TypeImpl_list stringListType;
@@ -358,9 +358,9 @@ public class TypeSystemImpl implements T
* value is the corresponding TypeImpl
* 
* When multiple type systems are being initialized in parallel, this list 
maybe updated
-   * on different threads.  Access to it is synchronized.
+   * on different threads.  Access to it is synchronized on the object itself
*/
-  private final List jcasRegisteredTypes = 
Collections.synchronizedList(new ArrayList<>(INIT_SIZE_ARRAYS_BUILT_IN_TYPES));
+  private final List jcasRegisteredTypes = new 
ArrayList<>(INIT_SIZE_ARRAYS_BUILT_IN_TYPES);
   /**
* An ArrayList, unsynchronized, indexed by feature code, of FeatureImpl 
objects
*/
@@ -900,7 +900,9 @@ public class TypeSystemImpl implements T
* @return
*/
   static SlotKind getSlotKindFromType(Type rangeType) {
-SlotKind slotKind = slotKindsForNonArrays.get(rangeType.getName());
+SlotKind slotKind = rangeType.isStringOrStringSubtype() 
+ ? Slot_StrRef 
+ : slotKindsForNonArrays.get(rangeType.getName());
 return (null == slotKind) ? Slot_HeapRef : slotKind; 
   }
 
@@ -1059,7 +1061,7 @@ public class TypeSystemImpl implements T
 }
 
 if (superType.isArray()) {
-  return ((TypeImpl_array)superType).subsumes((TypeImpl)subType);
+  return ((TypeImpl_array)superType).subsumes((TypeImpl)subType);  // 
doesn't need to be committed
 }
 
 if (subType == fsArrayType) {
@@ -1067,9 +1069,6 @@ public class TypeSystemImpl implements T
  superType == arrayBaseType; 
 }
 
-// at this point, we could have arrays of other primitive types, or
-// arrays of specific types: xxx[]
-
 if (subType.isArray()) {
   // If the subtype is an array, and the supertype is not, then the
   // supertype must be top, or the abstract array base.
@@ -1079,7 +1078,6 @@

svn commit: r1742632 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: XCASDeserializer.java XCASSerializer.java XmiCasDeserializer.java XmiCasSerializer.

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:11:59 2016
New Revision: 1742632

URL: http://svn.apache.org/viewvc?rev=1742632&view=rev
Log:
[UIMA-4673] Misc class move, support for array values for some type impl 
things.  

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
 Fri May  6 21:11:59 2016
@@ -32,13 +32,13 @@ import org.apache.uima.cas.FSIndexReposi
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.StringUtils;
 import org.apache.uima.internal.util.rb_trees.RedBlackTree;
 import org.apache.uima.jcas.cas.CommonPrimitiveArray;
 import org.apache.uima.jcas.cas.FSArray;
 import org.apache.uima.jcas.cas.Sofa;
 import org.apache.uima.jcas.cas.TOP;
-import org.apache.uima.util.Misc;
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.InputSource;
@@ -886,6 +886,9 @@ public class XCASDeserializer {
 }
 return;
   }
+  
+  // handle case where feature is xyz[] (an array ref, not primitive) 
but the value of fs is FSArray
+  ts.fixupFSArrayTypes(fi.getRangeImpl(), fsInfo.fs);
   fs.setFeatureValue(fi, fsInfo.fs);
 }
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java
 Fri May  6 21:11:59 2016
@@ -508,12 +508,15 @@ public class XCASSerializer {
 }
 
 private void encodeFSArray(FSArray fs, AttributesImpl attrs) throws 
SAXException {
-  final String typeName = fs._typeImpl.getName();
+  String typeName = fs._typeImpl.getName();
   final int size = fs.size();
 //  int pos = cas.getArrayStartAddress(fs_id);
   // xmlStack.addAttribute(ARRAY_SIZE_ATTR, Integer.toString(size));
   // xmlStack.commitNode();
   addAttribute(attrs, ARRAY_SIZE_ATTR, Integer.toString(size));
+  if (typeName.endsWith(TypeSystemImpl.ARRAY_TYPE_SUFFIX)) {
+typeName = CASImpl.TYPE_NAME_FS_ARRAY;
+  }
   startElement(typeName, attrs, size);
   for (int i = 0; i < size; i++) {
 String val = null;

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java?rev=1742632&r1=1742631&r2=1742632&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java
 Fri May  6 21:11:59 2016
@@ -49,6 +49,7 @@ import org.apache.uima.cas.impl.XmiSeria
 import org.apache.uima.cas.impl.XmiSerializationSharedData.OotsElementData;
 import org.apache.uima.internal.util.I18nUtil;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.XmlAttribute;
 import org.apache.uima.internal.util.XmlElementName;
 import org.apache.uima.internal.util.XmlElementNameAndContents;
@@ -64,7 +65,6 @@ import org.apache.uima.jcas.cas.NonEmpty
 import org

svn commit: r1742634 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:22:45 2016
New Revision: 1742634

URL: http://svn.apache.org/viewvc?rev=1742634&view=rev
Log:
[UIMA-4897] add tracing support for Feature Structure creation and update. Misc 
class move.  Add measure support for how ll_setIntValue is being used. Change 
some internal data structures to more efficient ones.  support explicit 
disabling of autocorruption check - used by deserializing. Add support for V2 
backwards compatibility for ll_setIntValue which does strange things (e.g. 
changing the type of an existing FS, getting / setting "handles" to 
string/long/double values, etc. Clean up array creation to allow for creating 
typed FS arrays. use type system constants to allow removing class name 
qualifiers from constants.

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=1742634&r1=1742633&r2=1742634&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
 Fri May  6 21:22:45 2016
@@ -19,9 +19,12 @@
 
 package org.apache.uima.cas.impl;
 
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
@@ -30,6 +33,7 @@ import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.BitSet;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
 import java.util.Iterator;
@@ -39,7 +43,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
-
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.UIMARuntimeException;
 import org.apache.uima.cas.AbstractCas_ImplBase;
@@ -78,10 +81,12 @@ import org.apache.uima.cas.admin.FSIndex
 import org.apache.uima.cas.admin.FSIndexRepositoryMgr;
 import org.apache.uima.cas.admin.TypeSystemMgr;
 import org.apache.uima.cas.impl.FSsTobeAddedback.FSsTobeAddedbackSingle;
+import org.apache.uima.cas.impl.SlotKinds.SlotKind;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.cas.text.Language;
-import org.apache.uima.internal.util.Int2ObjHashMap;
+import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.PositiveIntSet;
 import org.apache.uima.internal.util.PositiveIntSet_impl;
 import org.apache.uima.jcas.JCas;
@@ -107,7 +112,6 @@ import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.impl.JCasImpl;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.util.Level;
-import org.apache.uima.util.Misc;
 
 /**
  * Implements the CAS interfaces. This class must be public because we need to
@@ -117,11 +121,28 @@ import org.apache.uima.util.Misc;
  */
 public class CASImpl extends AbstractCas_ImplBase implements CAS, CASMgr, 
LowLevelCAS, TypeSystemConstants {
   
-  private static final boolean trace = false;
-  
+  private static final boolean trace = false; // debug
+  public static final boolean traceFSs = false;  // debug - trace FS creation 
and update  
+  private static final String traceFile = "traceFSs.log.txt";
+  private static final PrintStream traceOut;
+  static {
+try {
+  if (traceFSs) {
+System.out.println("Creating traceFSs file in directory " + 
System.getProperty("user.dir"));
+traceOut = traceFSs ? new PrintStream(new BufferedOutputStream(new 
FileOutputStream(traceFile, false))) : null;
+  } else {
+traceOut = null;
+  }
+} catch (Exception e) {
+  throw new RuntimeException(e);
+}
+  }
+
+  private static final boolean MEASURE_SETINT = false;
+
   // debug
   static final AtomicInteger casIdProvider = new AtomicInteger(0);
-
+  
   // Notes on the implementation
   // ---
 
@@ -189,6 +210,10 @@ public class CASImpl extends AbstractCas
   !IS_REPORT_FS_UPDATE_CORRUPTS_INDEX &&
   !IS_THROW_EXCEPTION_CORRUPT_INDEX;
  
+//  private static final int REF_DATA_FOR_ALLOC_SIZE = 1024;
+//  private static final int INT_DATA_FOR_ALLOC_SIZE = 1024;
+//  
+  
   // this next seemingly non-sensical static block
   // is to force the classe

svn commit: r1742635 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:23:37 2016
New Revision: 1742635

URL: http://svn.apache.org/viewvc?rev=1742635&view=rev
Log:
[UIMA-4670] additional msgs

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1742635&r1=1742634&r2=1742635&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 Fri May  6 21:23:37 2016
@@ -588,6 +588,7 @@ GET_CLASS_FOR_TYPE_BEFORE_TS_COMMIT = Ca
 CAS_MISSING_FS = The CAS doesn''t have a Feature Structure whose ID is {0}; it 
may have been garbage collected.
 INVALID_FS_ID = The Feature Structure ID {0} is invalid.
 TYPESYSTEMS_NOT_COMMITTED = Type Systems must be committed before calling this 
method.
+ADD_ARRAY_TYPE_AFTER_TS_COMMITTED = Can''t add an array type "{0}" to the type 
system after the type system has been committed.
 
 #
 # Serialization / deserialization runtime exceptions




svn commit: r1742637 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:25:56 2016
New Revision: 1742637

URL: http://svn.apache.org/viewvc?rev=1742637&view=rev
Log:
[UIMA-4666] jcas gen'd versions of test classes updated

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java?rev=1742637&r1=1742636&r2=1742637&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java
 Fri May  6 21:25:56 2016
@@ -94,7 +94,7 @@ public class LanguagePair extends TOP {
* @param v value to set into the feature 
*/
   public void setLang1(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_lang1, false), v);
+_setStringValueNfc(_FI_lang1, v);
   }
 

@@ -113,7 +113,7 @@ public class LanguagePair extends TOP {
* @param v value to set into the feature 
*/
   public void setLang2(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_lang2, false), v);
+_setStringValueNfc(_FI_lang2, v);
   }
 

@@ -132,7 +132,7 @@ public class LanguagePair extends TOP {
* @param v value to set into the feature 
*/
   public void setDescription(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_description, false), v);
+_setStringValueNfc(_FI_description, v);
   }
 
   }




svn commit: r1742636 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java: aa/AbstractType.java aa/ConcreteType.java aa/MissingFeatureInCas.java aa/Root.java x/y/z/Sentence.java x/y/z

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:25:33 2016
New Revision: 1742636

URL: http://svn.apache.org/viewvc?rev=1742636&view=rev
Log:
[UIMA-4666] jcas gen'd versions of test classes updated

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Sentence.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Token.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java?rev=1742636&r1=1742635&r2=1742636&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
 Fri May  6 21:25:33 2016
@@ -92,7 +92,7 @@ public class AbstractType extends TOP {
* @param v value to set into the feature 
*/
   public void setAbstractInt(int v) {
-_setIntValueNfc(_getFeatFromAdjOffset(_FI_abstractInt, true), v);
+_setIntValueNfc(_FI_abstractInt, v);
   }
 
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java?rev=1742636&r1=1742635&r2=1742636&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
 Fri May  6 21:25:33 2016
@@ -91,7 +91,7 @@ public class ConcreteType extends Abstra
* @param v value to set into the feature 
*/
   public void setConcreteString(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_concreteString, false), v);
+_setStringValueNfc(_FI_concreteString, v);
   }
 
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java?rev=1742636&r1=1742635&r2=1742636&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
 Fri May  6 21:25:33 2016
@@ -94,7 +94,7 @@ public class MissingFeatureInCas extends
* @param v value to set into the feature 
*/
   public void setHaveThisOne(int v) {
-_setIntValueNfc(_getFeatFromAdjOffset(_FI_haveThisOne, true), v);
+_setIntValueNfc(_FI_haveThisOne, v);
   }
 

@@ -113,7 +113,7 @@ public class MissingFeatureInCas extends
* @param v value to set into the feature 
*/
   public void setMissingThisOne(float v) {
-_setFloatValueNfc(_getFeatFromAdjOffset(_FI_missingThisOne, true), v);
+_setFloatValueNfc(_FI_missingThisOne, v);
   }
 

@@ -132,7 +132,7 @@ public class MissingFeatureInCas extends
* @param v value to set into the feature 
*/
   public void setChangedFType(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_changedFType, false), v);
+_setStringValueNfc(_FI_changedFType, v);
   }
 
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java?rev=1742636&r1=1742635&r2=1742636&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java 
(original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java 
Fri May  6 21:25:33 2016
@@ -103,7 +103,7 @@ public class Root extends TOP {
* @param v value to set into the feature 
*/
   public void setArrayInt(IntegerArray v) {
-_setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_arrayInt, false), v);
+_setFeatureValueNcWj(_FI_arrayInt, v);
   }
 
 
@@ -139,7 +139,7 @@ public class Root extends TOP {
* @param v value to set into the feature 
*/
   public void setArrayRef(FSArray v) {
-_setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_arrayR

svn commit: r1742638 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:27:12 2016
New Revision: 1742638

URL: http://svn.apache.org/viewvc?rev=1742638&view=rev
Log:
[UIMA-4674] Misc class move, add (disabled) test for looping processmanyagg - 
for tuning.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java?rev=1742638&r1=1742637&r2=1742638&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/MultiprocessingAnalysisEngine_implTest.java
 Fri May  6 21:27:12 2016
@@ -35,6 +35,7 @@ import org.apache.uima.analysis_engine.m
 import org.apache.uima.analysis_engine.metadata.impl.FixedFlow_impl;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.MultiThreadUtils;
 import org.apache.uima.internal.util.MultiThreadUtils.ThreadM;
 import org.apache.uima.resource.ResourceSpecifier;
@@ -293,6 +294,14 @@ public class MultiprocessingAnalysisEngi
 }
   }
   
+  // rename to run this in a loop
+  public void tstLoopProcessManyAgg() throws Exception {
+XMLInputSource in = new 
XMLInputSource("src/test/resources/ExampleTae/SimpleTestAggregate.xml");
+ResourceSpecifier specifier = 
+UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+Misc.timeLoops("ProcessManyAgg", 1000, () -> processMany(specifier));   
+  }
+  
   final int NUM_THREADS = Math.min(50, 
Runtime.getRuntime().availableProcessors() * 5);
   final int NUM_INSTANCES = (int)(NUM_THREADS * .7);
  




svn commit: r1742639 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl: AnalysisEngineDescription_implTest.java AnalysisEngineManagementImplTes

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:30:35 2016
New Revision: 1742639

URL: http://svn.apache.org/viewvc?rev=1742639&view=rev
Log:
[UIMA-4674] Misc class move, 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineManagementImplTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java?rev=1742639&r1=1742638&r2=1742639&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineDescription_implTest.java
 Fri May  6 21:30:35 2016
@@ -42,6 +42,7 @@ import org.apache.uima.analysis_engine.m
 import org.apache.uima.cas.CAS;
 import org.apache.uima.flow.FlowControllerDescription;
 import org.apache.uima.flow.impl.FlowControllerDescription_impl;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.MultiThreadUtils;
 import org.apache.uima.internal.util.SerializationUtils;
 import org.apache.uima.resource.ConfigurationManager;
@@ -83,11 +84,9 @@ import org.apache.uima.test.junit_extens
 import org.apache.uima.util.CasCreationUtils;
 import org.apache.uima.util.InvalidXMLException;
 import org.apache.uima.util.Logger;
-import org.apache.uima.util.Misc;
 import org.apache.uima.util.XMLInputSource;
 import org.apache.uima.util.XMLParser;
 
-import junit.framework.Assert;
 import junit.framework.TestCase;
 
 /**

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineManagementImplTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineManagementImplTest.java?rev=1742639&r1=1742638&r2=1742639&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineManagementImplTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/AnalysisEngineManagementImplTest.java
 Fri May  6 21:30:35 2016
@@ -23,8 +23,8 @@ import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.MultiThreadUtils;
-import org.apache.uima.util.Misc;
 
 import junit.framework.TestCase;
 




svn commit: r1742640 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:31:33 2016
New Revision: 1742640

URL: http://svn.apache.org/viewvc?rev=1742640&view=rev
Log:
[UIMA-4674] add some tracing flush

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java?rev=1742640&r1=1742639&r2=1742640&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/analysis_engine/impl/sequencer/SequencerFixedTest.java
 Fri May  6 21:31:33 2016
@@ -25,6 +25,7 @@ import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngine;
 import org.apache.uima.analysis_engine.ResultSpecification;
 import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.resource.ResourceSpecifier;
 import org.apache.uima.test.junit_extension.FileCompare;
 import org.apache.uima.test.junit_extension.JUnitExtension;
@@ -92,10 +93,10 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
-
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
-} finally {
+} finally { 
   // Destroy the CAS, releasing resources.
   if (ae != null) {
 ae.destroy();
@@ -136,7 +137,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
-
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {
@@ -180,6 +181,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {
@@ -223,6 +225,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {
@@ -266,6 +269,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {
@@ -309,6 +313,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {
@@ -352,6 +357,7 @@ public class SequencerFixedTest extends
   Assert.assertTrue(FileCompare.compare(outputReferenceFile, JUnitExtension
   .getFile("SequencerTest/SequencerFixedExpected.txt")));
   outputReferenceFile.delete();
+  ((CASImpl)cas).traceFSflush();
 } catch (Exception ex) {
   JUnitExtension.handleException(ex);
 } finally {




svn commit: r1742641 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima: internal/util/MiscTest.java internal/util/UIMAClassLoaderTest.java pear/util/PearRuntimeTest

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:37:51 2016
New Revision: 1742641

URL: http://svn.apache.org/viewvc?rev=1742641&view=rev
Log:
[UIMA-4674] Misc class move, change some arraylist to arrays

Added:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/MiscTest.java
  - copied, changed from r1730941, 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/MiscTest.java
Removed:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/MiscTest.java
Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/UIMAClassLoaderTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/pear/util/PearRuntimeTest.java

Copied: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/MiscTest.java
 (from r1730941, 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/MiscTest.java)
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/MiscTest.java?p2=uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/MiscTest.java&p1=uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/MiscTest.java&r1=1730941&r2=1742641&rev=1742641&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/MiscTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/MiscTest.java
 Fri May  6 21:37:51 2016
@@ -1,6 +1,6 @@
-package org.apache.uima.util;
+package org.apache.uima.internal.util;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import org.junit.Test;
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/UIMAClassLoaderTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/UIMAClassLoaderTest.java?rev=1742641&r1=1742640&r2=1742641&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/UIMAClassLoaderTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/internal/util/UIMAClassLoaderTest.java
 Fri May  6 21:37:51 2016
@@ -26,7 +26,6 @@ import java.net.URL;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.resource.ResourceManager;
 import org.apache.uima.test.junit_extension.JUnitExtension;
-import org.apache.uima.util.Misc;
 
 import junit.framework.TestCase;
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/pear/util/PearRuntimeTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/pear/util/PearRuntimeTest.java?rev=1742641&r1=1742640&r2=1742641&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/pear/util/PearRuntimeTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/pear/util/PearRuntimeTest.java
 Fri May  6 21:37:51 2016
@@ -40,7 +40,6 @@ import org.apache.uima.resource.metadata
 import org.apache.uima.resource.metadata.MetaDataObject;
 import org.apache.uima.test.junit_extension.JUnitExtension;
 
-import junit.framework.Assert;
 import junit.framework.TestCase;
 
 /**




svn commit: r1742643 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java: aa/ org/apache/lang/ org/apache/uima/examples/ org/apache/uima/testTypeSystem_arrays/ sofa/test/ x/y/z/

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:41:02 2016
New Revision: 1742643

URL: http://svn.apache.org/viewvc?rev=1742643&view=rev
Log:
[UIMA-4666] update new JCasgen classes, remove unused imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingInCas.java
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/Root.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/examples/SourceDocumentInformation.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/testTypeSystem_arrays/OfShorts.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/testTypeSystem_arrays/OfStrings.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/sofa/test/CrossAnnotation.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/EndOfSentence.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Sentence.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Separator.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Token.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/TokenType.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/x/y/z/Word.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java?rev=1742643&r1=1742642&r2=1742643&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/AbstractType.java
 Fri May  6 21:41:02 2016
@@ -8,10 +8,8 @@ package aa;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.cas.TOP;
 
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java?rev=1742643&r1=1742642&r2=1742643&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/ConcreteType.java
 Fri May  6 21:41:02 2016
@@ -8,7 +8,7 @@ package aa;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
 
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java?rev=1742643&r1=1742642&r2=1742643&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingFeatureInCas.java
 Fri May  6 21:41:02 2016
@@ -8,10 +8,8 @@ package aa;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.cas.TOP;
 
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingInCas.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingInCas.java?rev=1742643&r1=1742642&r2=1742643&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingInCas.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/aa/MissingInCas.java
 Fri May  6 

svn commit: r1742644 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima: cas/impl/ cas_data/impl/ jcas/test/

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:43:47 2016
New Revision: 1742644

URL: http://svn.apache.org/viewvc?rev=1742644&view=rev
Log:
[UIMA-4674] Misc class move, remove unused imports, features as arrays

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasPoolTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/Id2FSTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/XCASDeserializerTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas_data/impl/CasComparer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/jcas/test/JCasTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasPoolTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasPoolTest.java?rev=1742644&r1=1742643&r2=1742644&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasPoolTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasPoolTest.java
 Fri May  6 21:43:47 2016
@@ -33,12 +33,12 @@ import org.apache.uima.cas.TypeSystem;
 import org.apache.uima.impl.ChildUimaContext_impl;
 import org.apache.uima.impl.RootUimaContext_impl;
 import org.apache.uima.impl.UimaContext_ImplBase;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.MultiThreadUtils;
 import org.apache.uima.resource.CasManager;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.test.junit_extension.JUnitExtension;
 import org.apache.uima.util.InvalidXMLException;
-import org.apache.uima.util.Misc;
 import org.apache.uima.util.XMLInputSource;
 import org.apache.uima.util.XMLizable;
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java?rev=1742644&r1=1742643&r2=1742644&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
 Fri May  6 21:43:47 2016
@@ -30,7 +30,6 @@ import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIterator;
 import org.apache.uima.cas.TypeSystem;
 import org.apache.uima.cas.admin.FSIndexComparator;
-import org.apache.uima.internal.util.IntPointerIterator;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.resource.metadata.FsIndexDescription;

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/Id2FSTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/Id2FSTest.java?rev=1742644&r1=1742643&r2=1742644&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/Id2FSTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/Id2FSTest.java
 Fri May  6 21:43:47 2016
@@ -78,7 +78,7 @@ public class Id2FSTest extends TestCase
   } catch (LowLevelException e) {
 caught = true;
   }
-  assertTrue(caught);
+  assertTrue( Id2FS.IS_DISABLE_FS_GC || caught);
 }
 
 Id2FS id2fs = new Id2FS(200); 
@@ -101,10 +101,12 @@ public class Id2FSTest extends TestCase
 // remove 20 of them
 System.gc();
 Thread.sleep(10);  // in case gc needs time to finish 
-for (int i = 0; i < 19; i++) { // last TOP is held by 
cas.svd.cache_not_in_index
-  TOP fs = id2fs.get(i + 2);
-  assertNull(fs);
-}
+if (!Id2FS.IS_DISABLE_FS_GC) {
+  for (int i = 0; i < 19; i++) { // last TOP is held by 
cas.svd.cache_not_in_index
+TOP fs = id2fs.get(i + 2);
+assertNull(fs);
+  }
+}
   }
 
 }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/XCASDeserializerTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/XCASDeserializerTest.ja

svn commit: r1742646 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:44:40 2016
New Revision: 1742646

URL: http://svn.apache.org/viewvc?rev=1742646&view=rev
Log:
[UIMA-4674] update test for cas copier after making it follow v2 in copying 
subtypes of AnnotationBase into the specified view from the sofa reference.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java?rev=1742646&r1=1742645&r2=1742646&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/util/CasCopierTest.java
 Fri May  6 21:44:40 2016
@@ -335,7 +335,6 @@ public class CasCopierTest extends TestC
 
 // test with using base cas
 
-// Note that in v3, you cannot create subtypes of AnnotationBase in the 
base CAS
 destCas = CasCreationUtils.createCas(typeSystem, new 
TypePriorities_impl(), indexes);
 destCas.setDocumentText(srcCas.getDocumentText());
 copier = new CasCopier(((CASImpl)srcCas).getBaseCAS(), 
((CASImpl)destCas).getBaseCAS());
@@ -347,9 +346,8 @@ public class CasCopierTest extends TestC
   copy = copier.copyFs(annot);
 } catch (CASRuntimeException e) {
   wascaught = true;
-  assertEquals(e.getMessageKey(), 
CASRuntimeException.DISALLOW_CREATE_ANNOTATION_IN_BASE_CAS);
 }
-assertTrue(wascaught);
+assertFalse(wascaught);
 // verify copy
 CasComparer.assertEquals(annot, copy);
   }




svn commit: r1742648 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test: CrossAnnotation.java Sentence.java Token.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:48:54 2016
New Revision: 1742648

URL: http://svn.apache.org/viewvc?rev=1742648&view=rev
Log:
[UIMA-4666] update new JCasgen classes, remove unused imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CrossAnnotation.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Sentence.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Token.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CrossAnnotation.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CrossAnnotation.java?rev=1742648&r1=1742647&r2=1742648&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CrossAnnotation.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CrossAnnotation.java
 Fri May  6 21:48:54 2016
@@ -8,10 +8,8 @@ package org.apache.uima.cas.test;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.tcas.Annotation;
 
 
@@ -92,7 +90,7 @@ public class CrossAnnotation extends Ann
* @param v value to set into the feature 
*/
   public void setOtherAnnotation(Annotation v) {
-_setFeatureValueNcWj(_getFeatFromAdjOffset(_FI_otherAnnotation, false), v);
+_setFeatureValueNcWj(_FI_otherAnnotation, v);
   }
 
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Sentence.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Sentence.java?rev=1742648&r1=1742647&r2=1742648&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Sentence.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Sentence.java
 Fri May  6 21:48:54 2016
@@ -7,11 +7,8 @@ package org.apache.uima.cas.test;
 
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
-import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.tcas.Annotation;
 
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Token.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Token.java?rev=1742648&r1=1742647&r2=1742648&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Token.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/Token.java
 Fri May  6 21:48:54 2016
@@ -7,11 +7,8 @@ package org.apache.uima.cas.test;
 
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
-import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.tcas.Annotation;
 
 




svn commit: r1742649 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:49:54 2016
New Revision: 1742649

URL: http://svn.apache.org/viewvc?rev=1742649&view=rev
Log:
[UIMA-4674] remove unused imports, features as arrays

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java?rev=1742649&r1=1742648&r2=1742649&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/CasTypeSystemMapperTst.java
 Fri May  6 21:49:54 2016
@@ -18,10 +18,9 @@
  */
 package org.apache.uima.cas.impl;
 
+import java.util.Arrays;
 import java.util.BitSet;
-import java.util.Collection;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Set;
 
 import org.apache.uima.cas.CAS;
@@ -316,8 +315,8 @@ public class CasTypeSystemMapperTst exte
* @param tCode
*/
   private void chkfeats(CasTypeSystemMapper m, TypeImpl srcType, TypeImpl 
tgtType) {
-Set srcFeats = new HashSet<>(srcType.getFeatureImpls());
-Set tgtFeats = new HashSet<>(tgtType.getFeatureImpls());
+Set srcFeats = new 
HashSet<>(Arrays.asList(srcType.getFeatureImpls()));
+Set tgtFeats = new 
HashSet<>(Arrays.asList(tgtType.getFeatureImpls()));
 assertTrue(srcFeats.equals(tgtFeats));
   }
 
@@ -333,12 +332,12 @@ public class CasTypeSystemMapperTst exte
 TypeImpl srcType = m.tsSrc.getTypeForCode(tCode);
 TypeImpl tgtType = m.tsTgt.get().getTypeForCode(tCode);
 
-List tgtFeats = tgtType.getFeatureImpls();
+FeatureImpl[] tgtFeats = tgtType.getFeatureImpls();
 
 for (int j = 0, mf = 1; 
- j < tgtFeats.size(); 
+ j < tgtFeats.length; 
  j++, mf = mf<<1) {
-  FeatureImpl tgtFeat = tgtFeats.get(j);
+  FeatureImpl tgtFeat = tgtFeats[j];
   if ((mFeats & mf) == mf) {  // if the feature is supposed to be missing
 assertEquals(null, m.getSrcFeature(tgtType, tgtFeat));
 continue;
@@ -360,12 +359,12 @@ public class CasTypeSystemMapperTst exte
 TypeImpl srcType = m.tsSrc.getTypeForCode(tCode);
 TypeImpl tgtType = m.tsTgt.get().getTypeForCode(tCode);
 
-List srcFeats = srcType.getFeatureImpls();
+FeatureImpl[] srcFeats = srcType.getFeatureImpls();
 
 for (int j = 0, mf = 1; 
- j < srcFeats.size(); 
+ j < srcFeats.length; 
  j++, mf = mf<<1) {
-  FeatureImpl srcFeat = srcFeats.get(j);
+  FeatureImpl srcFeat = srcFeats[j];
   if ((mFeats & mf) == mf) {  // if the feature is supposed to be missing
 assertEquals(null, m.getTgtFeature(srcType, srcFeat));
 continue;




svn commit: r1742650 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:51:19 2016
New Revision: 1742650

URL: http://svn.apache.org/viewvc?rev=1742650&view=rev
Log:
[UIMA-4674] add more kinds of features - double, long.  Add intArrayType

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java?rev=1742650&r1=1742649&r2=1742650&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/CASTestSetup.java
 Fri May  6 21:51:19 2016
@@ -72,9 +72,12 @@ public class CASTestSetup  implements An
   + SENT_LEN_FEAT;
 
   public static final String TOKEN_FLOAT_FEAT = "tokenFloatFeat";
+  public static final String TOKEN_DOUBLE_FEAT = "tokenDoubleFeat";
+  public static final String TOKEN_LONG_FEAT = "tokenLongFeat";
 
-  public static final String TOKEN_FLOAT_FEAT_Q = TOKEN_TYPE + 
TypeSystem.FEATURE_SEPARATOR
-  + TOKEN_FLOAT_FEAT;
+  public static final String TOKEN_FLOAT_FEAT_Q = TOKEN_TYPE + 
TypeSystem.FEATURE_SEPARATOR + TOKEN_FLOAT_FEAT;
+  public static final String TOKEN_DOUBLE_FEAT_Q = TOKEN_TYPE + 
TypeSystem.FEATURE_SEPARATOR + TOKEN_DOUBLE_FEAT;
+  public static final String TOKEN_LONG_FEAT_Q = TOKEN_TYPE + 
TypeSystem.FEATURE_SEPARATOR + TOKEN_LONG_FEAT;
 
   public static final String LEMMA_LIST_FEAT = "lemmaList";
 
@@ -120,17 +123,23 @@ public class CASTestSetup  implements An
   
   /* Types:
* TOP
-   *   Token  TOKEN_TYPE
-   * Word
-   * Separator
-   * EndOfSentence
+   *   token_type_type 
+   * Word_type
+   * Sep_type
+   * EOS_type
*   ArrayFSwithSubtype
*   Annotation
-   * Sentence
-   *   
+   * Sentence [SEN_LEN_FEAT(int)
+   * Token  TOKEN_TYPE [TOKEN_TYPE_FEAT(TOKEN_TYPE_TYPE), 
TOKEN_FLOAT_FEAT, LEMMA_FEAT(string), LEMMA_LIST_FEAT[stringArray]
+   *   String
+   * Group1
+   * Group2
+   *   Lang_pair [LANG1(Group1), LANG2(Group2), DESCR_FEAT(string)  
*/
   public void initTypeSystem(TypeSystemMgr tsm) {
 // Add new types and features.
+Type stringType = tsm.getType(CAS.TYPE_NAME_STRING);
+
 Type topType = tsm.getTopType();
 Type annotType = tsm.getType(CAS.TYPE_NAME_ANNOTATION);
 // assert(annotType != null);
@@ -145,13 +154,15 @@ public class CASTestSetup  implements An
 tsm.addType(EOS_TYPE, tokenTypeType);
 tsm.addFeature(TOKEN_TYPE_FEAT, tokenType, tokenTypeType);
 tsm.addFeature(TOKEN_FLOAT_FEAT, tokenType, 
tsm.getType(CAS.TYPE_NAME_FLOAT));
+tsm.addFeature(TOKEN_DOUBLE_FEAT, tokenType, 
tsm.getType(CAS.TYPE_NAME_DOUBLE));
+tsm.addFeature(TOKEN_LONG_FEAT, tokenType,  
tsm.getType(CAS.TYPE_NAME_LONG));
 // Add a type that inherits from IntArray.
 // tsm.addType(INT_ARRAY_SUB, tsm.getType(CAS.TYPE_NAME_INTEGER_ARRAY));
 // tsm.addFeature(
 // INT_SUB_NAME,
 // tsm.getType(INT_ARRAY_SUB),
 // tsm.getType(CAS.TYPE_NAME_STRING));
-tsm.addFeature(LEMMA_FEAT, tokenType, tsm.getType(CAS.TYPE_NAME_STRING));
+tsm.addFeature(LEMMA_FEAT, tokenType, stringType);
 tsm.addFeature(SENT_LEN_FEAT, tsm.getType(SENT_TYPE), 
tsm.getType(CAS.TYPE_NAME_INTEGER));
 tsm.addFeature(LEMMA_LIST_FEAT, tsm.getType(TOKEN_TYPE), tsm
 .getType(CAS.TYPE_NAME_STRING_ARRAY));
@@ -160,7 +171,6 @@ public class CASTestSetup  implements An
 Type langPair = tsm.addType(LANG_PAIR, topType);
 tsm.addFeature(LANG1, langPair, group1);
 tsm.addFeature(LANG2, langPair, group2);
-Type stringType = tsm.getType(CAS.TYPE_NAME_STRING);
 tsm.addFeature(DESCR_FEAT, langPair, stringType);
 boolean exc = false;
 try {
@@ -178,6 +188,9 @@ public class CASTestSetup  implements An
   exc = true;
 }
 TestCase.assertTrue(exc);
+// add IntegerArray[] type before commit for testArrayTypes in 
TypeSystemTest
+Type intArrayType = tsm.getType(CAS.TYPE_NAME_INTEGER_ARRAY);
+Type arrayOfIntArray = tsm.getArrayType(intArrayType);
   }
 
   public void initIndexes(FSIndexRepositoryMgr irm, TypeSystem ts) {




svn commit: r1742651 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 21:52:52 2016
New Revision: 1742651

URL: http://svn.apache.org/viewvc?rev=1742651&view=rev
Log:
[UIMA-4674] add disabled cas copier performance test

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java?rev=1742651&r1=1742650&r2=1742651&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/GrowingTheCasTest.java
 Fri May  6 21:52:52 2016
@@ -183,6 +183,91 @@ public class GrowingTheCasTest extends T
 jcas= null;
   }
 
+  public void tstCasCopierPerf() {
+//  Properties props = System.getProperties();
+//  for (Map.Entry es : props.entrySet()) {
+//System.out.format("JVM Prop %s: %s%n",  es.getKey(), es.getValue());
+//  }
+
+//  System.out.format("JVM total memory: %,d, JVM Max Mem: %,d%n", 
Runtime.getRuntime().totalMemory(), Runtime.getRuntime().maxMemory());
+  File textFile = JUnitExtension.getFile("data/moby.txt");
+  String text = null;
+  try {
+text = FileUtils.file2String(textFile, "utf-8");
+  } catch (IOException e) {
+e.printStackTrace();
+assertTrue(false);
+  }
+  StringBuffer buf = new StringBuffer(text.length() * 10);
+  for (int i = 0; i < 10; i++) {
+buf.append(text);
+  }
+  jcas = null;
+  try {
+jcas = this.ae.newJCas();
+  } catch (ResourceInitializationException e) {
+e.printStackTrace();
+assertTrue(false);
+  }
+  text = buf.toString();
+  jcas.setDocumentText(text);
+  int numberOfSentences = 0;
+  int numberOfTokens = 0;
+  try {
+//long time = System.currentTimeMillis();
+this.ae.process(jcas);
+//time = System.currentTimeMillis() - time;
+//System.out.println("Time for large CAS: " + new TimeSpan(time));
+numberOfSentences = jcas.getAnnotationIndex(Sentence.type).size();
+numberOfTokens = jcas.getAnnotationIndex(Token.type).size();
+System.out.println("Moby * 10, nbr of sentences = " + numberOfSentences);
+System.out.println("Moby * 10, nbr of tokens = " + numberOfTokens);
+  } catch (AnalysisEngineProcessException e) {
+e.printStackTrace();
+assertTrue(false);
+  }
+  
+//  // performance testing of "unordered" iterators
+//  for (int i = 0; i < 10; i++) {
+//timeIt(i);
+//  }
+  
+  // performance testing of CasCopier
+  
+  // create a destination CAS
+  CAS destCas;
+  try {
+destCas = this.ae.newCAS();
+  } catch (ResourceInitializationException e) {
+e.printStackTrace();
+assertTrue(false);
+return;  // to avoid compile problems
+  }
+  CAS srcCas = jcas.getCas();
+
+  CasCopier copier;
+  // do the copy
+  long shortest = Long.MAX_VALUE;
+  int i = 0;
+  for (; i < 200; i++) {  // uncomment for perf test.  was more than 5x faster 
than version 2.6.0
+destCas.reset();
+long startTime = System.nanoTime();
+copier = new CasCopier(srcCas, destCas);
+copier.copyCasView(srcCas, true);
+long time = (System.nanoTime() - startTime)/ 1000;
+if (time < shortest) {
+  shortest = time;
+  System.out.format("CasCopier speed for Moby is %,d microseconds on 
iteration %,d%n", shortest, i);
+}
+  }
+  
+  // verify copy
+  CasComparer.assertEquals(srcCas, destCas);
+
+//  ((JCasImpl)jcas).showJfsFromCaddrHistogram();
+  jcas= null;
+}
+
   private void timeIt(int i) {
 FSIterator it = 
jcas.getIndexRepository().getAllIndexedFS(jcas.getCasType(Annotation.type));   
 int c = 0;




svn commit: r1742656 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:11:46 2016
New Revision: 1742656

URL: http://svn.apache.org/viewvc?rev=1742656&view=rev
Log:
no jira - add comments

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java?rev=1742656&r1=1742655&r2=1742656&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/NewPrimitiveTypesTest.java
 Fri May  6 22:11:46 2016
@@ -381,14 +381,14 @@ public class NewPrimitiveTypesTest exten
 // clone it
 AnnotationFS clone = (AnnotationFS) fs.clone();
 
-// subsitute the clone for the original in the index,
+// substitute the clone for the original in the index,
 // and validate that it was correctly copied
 englishView.removeFsFromIndexes(fs);
 englishView.addFsToIndexes(clone);
 validateFSData(cas);
 
 // editing the original FS should not change the clone
-englishView.removeFsFromIndexes(fs);
+englishView.removeFsFromIndexes(fs);  // does nothing, is not in the 
index, the clone is
 fs.setStringValue(stringFeature, "foo");
 fs.setFloatValue(floatFeature, -1f);
 fs.setByteValue(byteFeature, (byte) -1);
@@ -397,7 +397,7 @@ public class NewPrimitiveTypesTest exten
 fs.setLongValue(longFeature, -1);
 fs.setDoubleValue(doubleFeature, -1);
 fs.setBegin(clone.getBegin() + 1);  // to be sure that fs is beyond the 
original
-englishView.addFsToIndexes(fs);
+englishView.addFsToIndexes(fs);  // will add, is no longer "equal" to the 
clone
 validateFSData(cas);
   }
 




svn commit: r1742657 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:12:36 2016
New Revision: 1742657

URL: http://svn.apache.org/viewvc?rev=1742657&view=rev
Log:
[UIMA-4666] update new JCasgen classes, remove unused imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java?rev=1742657&r1=1742656&r2=1742657&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/StringSubtypeAnnotation.java
 Fri May  6 22:12:36 2016
@@ -8,10 +8,8 @@ package org.apache.uima.cas.test;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.JCas; 
+import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.JCasRegistry;
-
-
 import org.apache.uima.jcas.tcas.Annotation;
 
 
@@ -92,7 +90,7 @@ public class StringSubtypeAnnotation ext
* @param v value to set into the feature 
*/
   public void setStringSetFeature(String v) {
-_setStringValueNfc(_getFeatFromAdjOffset(_FI_stringSetFeature, false), v);
+_setStringValueNfc(_FI_stringSetFeature, v);
   }
 
   }




svn commit: r1742658 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:13:45 2016
New Revision: 1742658

URL: http://svn.apache.org/viewvc?rev=1742658&view=rev
Log:
[UIMA-4674] add test for serializing parameterized type array

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java?rev=1742658&r1=1742657&r2=1742658&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/TypeSystemTest.java
 Fri May  6 22:13:45 2016
@@ -429,6 +429,10 @@ public class TypeSystemTest extends Test
 assertTrue(this.ts.subsumes(annotType, tokenType));
 assertTrue(!this.ts.subsumes(tokenType, annotType));
 assertTrue(!this.ts.subsumes(tokenType, top));
+
+Type stringType = this.ts.getType(CAS.TYPE_NAME_STRING);
+Type substringType = this.ts.getType(CASTestSetup.GROUP_1);
+assertTrue(this.ts.subsumes(stringType, substringType));
   }
 
   /**
@@ -552,6 +556,46 @@ public class TypeSystemTest extends Test
   assertTrue(false);
 }
   }
+  
+  public void testSerializeParameterizedArrayTypeSystem() {
+
+ByteArrayOutputStream os = new ByteArrayOutputStream();
+try {
+  TypeSystem2Xml.typeSystem2Xml(ts, os);
+} catch (SAXException e) {
+  assertTrue(false);
+} catch (IOException e) {
+  assertTrue(false);
+}
+try {
+  os.close();
+} catch (IOException e) {
+  assertTrue(false);
+}
+InputStream is = new ByteArrayInputStream(os.toByteArray());
+//System.out.println(os.toString());
+XMLInputSource xis = new XMLInputSource(is, new File("."));
+Object descriptor = null;
+try {
+  descriptor = UIMAFramework.getXMLParser().parse(xis);
+} catch (InvalidXMLException e) {
+  assertTrue(false);
+}
+// instantiate CAS to get type system. Also build style
+// map file if there is none.
+TypeSystemDescription tsDesc = (TypeSystemDescription) descriptor;
+try {
+  tsDesc.resolveImports();
+} catch (InvalidXMLException e) {
+  assertTrue(false);
+}
+try {
+  CasCreationUtils.createCas(tsDesc, null, new FsIndexDescription[] {});
+} catch (ResourceInitializationException e) {
+  assertTrue(false);
+}
+  }
+  
 
   public static void main(String[] args) {
 junit.textui.TestRunner.run(TypeSystemTest.class);




svn commit: r1742659 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:17:50 2016
New Revision: 1742659

URL: http://svn.apache.org/viewvc?rev=1742659&view=rev
Log:
[UIMA-4674] add test timing add to indexes in various orders

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java?rev=1742659&r1=1742658&r2=1742659&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 Fri May  6 22:17:50 2016
@@ -27,7 +27,9 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.FSIndexRepositoryImpl;
 import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 
@@ -42,6 +44,8 @@ public class IndexRepositoryTest extends
 
   FSIndexRepository indexRep;
 
+  private String running;
+
   /*
* (non-Javadoc)
* 
@@ -106,7 +110,7 @@ public class IndexRepositoryTest extends
 
 FSIndexRepository ir = cas.getIndexRepository();
 FSIndex index = 
ir.getIndex(CASTestSetup.ANNOT_SET_INDEX);
-assertEquals(index.size(), 1);
+assertEquals(1, index.size());
 
 index = ir.getIndex(CASTestSetup.ANNOT_SORT_INDEX);
 assertEquals(2, index.size());
@@ -143,17 +147,17 @@ public class IndexRepositoryTest extends
 }
 
 // warmup and jit
-timeAdd2Indexes(fsa);
+timeAdd2Indexes(fsa, false);
 timeRemoveFromIndexes(fsa);
 
-long a2i = timeAdd2Indexes(fsa);
+long a2i = timeAdd2Indexes(fsa, false);
 long rfi = timeRemoveFromIndexes(fsa);
 
-long a2i2 = timeAdd2Indexes(fsa);
+long a2i2 = timeAdd2Indexes(fsa, false);
 long rfir = timeRemoveFromIndexesReverse(fsa);
 
-System.out.format("Timing add/remv from indexes: add1: %,d msec, add2: %,d 
msec, rmv: %,d msec, rmvReversed: %,d msec%n", 
-a2i, a2i2, rfi, rfir);
+System.out.format("Timing add/remv from indexes: add1: %,d microsec, add2: 
%,d microsec, rmv: %,d microsec, rmvReversed: %,d microsec%n", 
+a2i/1000, a2i2/1000, rfi/1000, rfir/1000);
 // big loop for doing profiling by hand and checking space recovery by hand   
 
 //for (int i = 0; i < 1; i++) {
@@ -162,69 +166,137 @@ public class IndexRepositoryTest extends
 //}
   }
   
+  public void testAddSpeed() {
+running = "testAddSpeed - 2 sorted, 1 set, 1 bag";
+runAddSpeed();
+  }
+  
+  public void testAddSpeedSorted() {
+FSIndexRepositoryImpl ir = (FSIndexRepositoryImpl) 
cas.getIndexRepository();
+ir.removeIndex(CASTestSetup.ANNOT_SET_INDEX);
+ir.removeIndex(CASTestSetup.ANNOT_SORT_INDEX);
+ir.removeIndex(CASTestSetup.ANNOT_BAG_INDEX);
+//   ir.removeIndex(CAS.STD_ANNOTATION_INDEX);
+running = "testAddSpeedSorted";
+runAddSpeed();
+  }
+
+  private void runAddSpeed() { 
+   //  create an instance of an annotation type
+Feature beginFeat = 
this.typeSystem.getFeatureByFullName(CASTestSetup.TOKEN_TYPE + ":begin");
+Type fsType = this.typeSystem.getType(CASTestSetup.TOKEN_TYPE);
+FeatureStructure[] fsa = new FeatureStructure[NBR_ITEMS];
+// create 4 tokens
+for (int i = 0; i < fsa.length; i++) {
+  fsa[i] = this.cas.createFS(fsType);
+  fsa[i].setIntValue(beginFeat,  i);
+}
+
+// warmup and jit
+long prev = Long.MAX_VALUE;
+for (int i = 0; i < 10; i++) {
+  
cas.getIndexRepository().removeAllIncludingSubtypes(cas.getTypeSystem().getTopType());
+  long t = timeAdd2Indexes(fsa, false);
+  if (t < prev) {
+System.out.format("%s Iteration %,d Add Forward 40K took  %,d 
microsec%n", running, i, t/1000);
+prev = t;
+  }
+}
+
+prev = Long.MAX_VALUE;
+for (int i = 0; i < 10; i++) {
+  
cas.getIndexRepository().removeAllIncludingSubtypes(cas.getTypeSystem().getTopType());
+  long t = timeAdd2Indexes(fsa, true);
+  if (t < prev) {
+System.out.format("%s Iteration %,d Add Reverse 40K took  %,d 
microsec%n", running, i, t/1000);
+prev = t;
+  }
+}
+
+  }
+  
   public void testRemovalSpeedBagAlone() throws Exception {
-// create an instance of an non-annotation type

+FSIndexRepositoryIm

svn commit: r1742660 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:18:28 2016
New Revision: 1742660

URL: http://svn.apache.org/viewvc?rev=1742660&view=rev
Log:
no jira - remove unused imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java?rev=1742660&r1=1742659&r2=1742660&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryMergingTest.java
 Fri May  6 22:18:28 2016
@@ -21,24 +21,15 @@ package org.apache.uima.cas.test;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
 import org.apache.uima.cas.FSIndex;
-import org.apache.uima.cas.FSIndexRepository;
-import org.apache.uima.cas.FSIterator;
-import org.apache.uima.cas.Feature;
-import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.admin.CASFactory;
 import org.apache.uima.cas.admin.FSIndexComparator;
-import org.apache.uima.cas.admin.FSIndexRepositoryMgr;
 import org.apache.uima.cas.admin.LinearTypeOrderBuilder;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSIndexComparatorImpl;
 import org.apache.uima.cas.impl.FSIndexRepositoryImpl;
-import org.apache.uima.cas.impl.FsIndex_annotation;
-import org.apache.uima.cas.impl.FsIndex_singletype;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 
 import junit.framework.TestCase;




svn commit: r1742661 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:18:49 2016
New Revision: 1742661

URL: http://svn.apache.org/viewvc?rev=1742661&view=rev
Log:
no jira - remove unused imports

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java?rev=1742661&r1=1742660&r2=1742661&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexComparitorTest.java
 Fri May  6 22:18:49 2016
@@ -36,7 +36,6 @@ import org.apache.uima.cas.admin.TypeSys
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.LinearTypeOrderBuilderImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
-import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.test.junit_extension.JUnitExtension;
 
 import junit.framework.TestCase;




svn commit: r1742662 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:19:50 2016
New Revision: 1742662

URL: http://svn.apache.org/viewvc?rev=1742662&view=rev
Log:
[UIMA-4674] add test for v2 backward compatibility with ll set-int and friends.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java?rev=1742662&r1=1742661&r2=1742662&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 Fri May  6 22:19:50 2016
@@ -25,10 +25,19 @@ import org.apache.uima.cas.CASRuntimeExc
 import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
-import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.FeatureImpl;
 import org.apache.uima.cas.impl.LowLevelCAS;
 import org.apache.uima.cas.impl.LowLevelTypeSystem;
+import org.apache.uima.cas.impl.TypeImpl;
+import org.apache.uima.cas.impl.TypeSystemConstants;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.jcas.cas.FSArray;
+import org.apache.uima.jcas.cas.NonEmptyFSList;
+import org.apache.uima.jcas.cas.Sofa;
+import org.apache.uima.jcas.cas.TOP;
+import org.apache.uima.jcas.tcas.Annotation;
 
 import junit.framework.TestCase;
 
@@ -38,19 +47,19 @@ import junit.framework.TestCase;
  */
 public class FeatureStructureTest extends TestCase {
 
-   private CAS cas;
+   private CASImpl cas;
 
-   private TypeSystem ts;
+   private TypeSystemImpl ts;
 
private Type topType;
 
private Type stringType;
 
-   private Type tokenType;
+   private TypeImpl tokenType;
 
private Type intType;
 
-   private Type tokenTypeType;
+   private TypeImpl tokenTypeType;
 
private Type wordType;
 
@@ -79,6 +88,8 @@ public class FeatureStructureTest extend
private Feature sentLenFeat;
 
private Feature tokenFloatFeat;
+   private Feature tokenLongFeat;
+   private Feature tokenDoubleFeat;
 
private Feature startFeature;
 
@@ -97,9 +108,9 @@ public class FeatureStructureTest extend
 
public void setUp() {
try {
-   this.cas = CASInitializer.initCas(new CASTestSetup(), 
null);
+   this.cas = (CASImpl) CASInitializer.initCas(new 
CASTestSetup(), null);
assertTrue(this.cas != null);
-   this.ts = this.cas.getTypeSystem();
+   this.ts = (TypeSystemImpl) this.cas.getTypeSystem();
assertTrue(this.ts != null);
} catch (Exception e) {
e.printStackTrace();
@@ -133,6 +144,10 @@ public class FeatureStructureTest extend
assertTrue(this.sentLenFeat != null);
this.tokenFloatFeat = 
this.ts.getFeatureByFullName(CASTestSetup.TOKEN_FLOAT_FEAT_Q);
assertTrue(this.tokenFloatFeat != null);
+this.tokenDoubleFeat = 
this.ts.getFeatureByFullName(CASTestSetup.TOKEN_DOUBLE_FEAT_Q);
+assertTrue(this.tokenDoubleFeat != null);
+this.tokenLongFeat = 
this.ts.getFeatureByFullName(CASTestSetup.TOKEN_LONG_FEAT_Q);
+assertTrue(this.tokenLongFeat != null);
this.startFeature = 
this.ts.getFeatureByFullName(CAS.FEATURE_FULL_NAME_BEGIN);
assertTrue(this.startFeature != null);
this.langPairType = this.ts.getType(CASTestSetup.LANG_PAIR);
@@ -200,6 +215,92 @@ public class FeatureStructureTest extend
assertTrue(word.getType().equals(wordType1));
assertTrue(token.getType().equals(tokenType1));
}
+   
+   /**
+* This test tests V2 backwards compatibility 
+* The goal is to match what V2 did for low level cas access
+* The area this is testing is the use of the LL int operations to 
change the type of an existing feature structure.
+*/
+   public void testLLsetType() {
+ LowLevelCAS llc = cas.getLowLevelCAS();
+FSArray fsa = new FSArray(ts.getType(CAS.TYPE_NAME_FS_ARRAY), cas, 3);
+NonEmptyFSList  fsl = new 
NonEmptyFSList(ts.getType(CAS.TYPE_NAME_NON_EMPTY_FS_LIST), cas);
+
+Annotation token = this.cas.createFS(tokenType);
+// set up some refs; these must be updated if the type changes in a way to 
require a new FS
+fsa.set(0, token);   // set 

svn commit: r1742664 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:21:59 2016
New Revision: 1742664

URL: http://svn.apache.org/viewvc?rev=1742664&view=rev
Log: (empty)

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java?rev=1742664&r1=1742663&r2=1742664&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/SerializationReinitTest.java
 Fri May  6 22:21:59 2016
@@ -646,7 +646,7 @@ public class SerializationReinitTest ext
   int ll_shortarrayfeatcode = 
ll_cas.ll_getTypeSystem().ll_getCodeForFeature(theShortArrayFeature);
   int ll_longfeatcode = 
ll_cas.ll_getTypeSystem().ll_getCodeForFeature(theLongFeature);
   
-  for (int cycle=0; cycle<10; cycle+=2) {
+  for (int cycle = 0; cycle < 10; cycle +=2 ) {
 FeatureStructure newFS1 = cas.createFS(theTypeType); 
 newFS1.setIntValue(startFeature, cycle);
 newFS1.setIntValue(endFeature, cycle+1);
@@ -692,7 +692,7 @@ public class SerializationReinitTest ext
 
 FSIndex idx = cas.getAnnotationIndex(theTypeType);
 FSIterator iter = idx.iterator();
-for (int tc=0; tc

svn commit: r1742665 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:22:58 2016
New Revision: 1742665

URL: http://svn.apache.org/viewvc?rev=1742665&view=rev
Log:
[UIMA-4670] capture cause if present

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java?rev=1742665&r1=1742664&r2=1742665&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/UIMAException.java
 Fri May  6 22:22:58 2016
@@ -88,6 +88,7 @@ public class UIMAException extends Excep
*/
   public UIMAException(Throwable aCause) {
 super(aCause);
+mCause = aCause;
 if (mMessageKey == null && (aCause instanceof I18nExceptionI)) {
   I18nExceptionI cause = (I18nExceptionI)aCause;
   mMessageKey = cause.getMessageKey();
@@ -131,7 +132,7 @@ public class UIMAException extends Excep
*/
   public UIMAException(String aResourceBundleName, String aMessageKey, 
Object[] aArguments,
   Throwable aCause) {
-super();
+super(aCause);
 this.mResourceBundleName = aResourceBundleName;
 this.mMessageKey = aMessageKey;
 this.mArguments = aArguments;




svn commit: r1742666 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java

2016-05-06 Thread schor
Author: schor
Date: Fri May  6 22:23:57 2016
New Revision: 1742666

URL: http://svn.apache.org/viewvc?rev=1742666&view=rev
Log:
[UIMA-4674] method change

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java?rev=1742666&r1=1742665&r2=1742666&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/AnalysisEngineImplBase.java
 Fri May  6 22:23:57 2016
@@ -372,7 +372,7 @@ public abstract class AnalysisEngineImpl
 getCasManager().releaseCas(cas);
 
 TypeImpl t = ts.getType(aTypeName);
-return (t == null) ? null : t.getFeatureImpls().stream().map(f -> 
f.getShortName()).toArray(size -> new String[size]);
+return (t == null) ? null : t.getFeaturesAsStream().map(f -> 
f.getShortName()).toArray(size -> new String[size]);
   }
 
   /*




svn commit: r1743686 - in /uima/uimaj/trunk/uimaj-core/src/main: java/org/apache/uima/cas/CASRuntimeException.java java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java resources/org/apache/uima/UI

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:02:00 2016
New Revision: 1743686

URL: http://svn.apache.org/viewvc?rev=1743686&view=rev
Log:
[UIMA-4932] add check for missing sofa ref when adding to indexes, with message 
indicating possible cause

Modified:

uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java?rev=1743686&r1=1743685&r2=1743686&view=diff
==
--- 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 Fri May 13 15:02:00 2016
@@ -23,6 +23,7 @@ import org.apache.uima.UIMARuntimeExcept
 
 /**
  * Runtime exception class for package org.apache.uima.cas.
+ * Messages in org.apache.uima.UIMAException_Messages
  */
 public class CASRuntimeException extends UIMARuntimeException {
 
@@ -126,6 +127,9 @@ public class CASRuntimeException extends
/** No sofaFS for specified sofaRef found. */
public static final String SOFAREF_NOT_FOUND = "SOFAREF_NOT_FOUND";
 
+  /** Sofa reference for FS {0} is required, but it is not set.  This can 
happen during deserialization when the type system changes where this 
FeatureStructure''s type definition is now a subtype of uima.cas.AnnotationBase 
but was not when the serialized form was created.*/
+  public static final String SOFAREF_NOT_SET= "SOFAREF_NOT_SET";
+
/** Can''t use standard set methods with SofaFS features. */
public static final String PROTECTED_SOFA_FEATURE = 
"PROTECTED_SOFA_FEATURE";
 

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java?rev=1743686&r1=1743685&r2=1743686&view=diff
==
--- 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 Fri May 13 15:02:00 2016
@@ -2776,6 +2776,11 @@ public class FSIndexRepositoryImpl imple
 // skip test for wrong view if addback, etc.
 if (!isAddback && (!IS_DISABLE_ENHANCED_WRONG_INDEX_CHECK) && 
sii.tsi.isAnnotationBaseOrSubtype(typeCode)) {
   final int sofaAddr = cas.getSofaFeat(fsRef);
+  if (sofaAddr == 0) {
+throw new CASRuntimeException(
+CASRuntimeException.SOFAREF_NOT_SET, new String[] {
+
((FeatureStructureImpl)(cas.ll_getFSForRef(fsRef))).toString()});
+  }
   if (!cas.isSofaView(sofaAddr)) {
 AnnotationBaseImpl fs_abi = new AnnotationBaseImpl(fsRef, cas);
 SofaFS annotSofaFS = cas.getSofa(sofaAddr);

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1743686&r1=1743685&r2=1743686&view=diff
==
--- 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 Fri May 13 15:02:00 2016
@@ -550,6 +550,7 @@ SOFANAME_ALREADY_EXISTS = A sofaFS with
 SOFADATA_ALREADY_SET = Data for Sofa feature {0} has already been set.
 SOFANAME_NOT_FOUND = No sofaFS with name {0} found.
 SOFAREF_NOT_FOUND = No sofaFS for specified sofaRef found.
+SOFAREF_NOT_SET = Sofa reference for FS {0} is required, but it is not set.  
This can happen during deserialization when the type system changes where this 
FeatureStructure''s type definition is now a subtype of uima.cas.AnnotationBase 
but was not when the serialized form was created.
 PROTECTED_SOFA_FEATURE = Can''t use standard set methods with SofaFS features.
 JCAS_MISSING_COVERCLASS = The JCAS cover class "{0}" could not be loaded.
 INVALID_FEATURE_PATH = The feature path "{0}" is not valid.




svn commit: r1743687 - /uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:03:11 2016
New Revision: 1743687

URL: http://svn.apache.org/viewvc?rev=1743687&view=rev
Log:
[UIMA-4932] add test case, and also add tests that measure add to index 
performance in reverse order

Modified:

uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

Modified: 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java?rev=1743687&r1=1743686&r2=1743687&view=diff
==
--- 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 (original)
+++ 
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 Fri May 13 15:03:11 2016
@@ -22,6 +22,7 @@ import junit.framework.TestCase;
 
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
+import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIndexRepository;
 import org.apache.uima.cas.FSIterator;
@@ -29,8 +30,12 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSIndexRepositoryImpl;
+import org.apache.uima.cas.impl.FeatureStructureImpl;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.cas.text.AnnotationFS;
+import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.jcas.tcas.Annotation;
 
@@ -61,6 +66,19 @@ public class IndexRepositoryTest extends
 indexRep = null;
   }
   
+  public void testMissingSofaRef() throws Exception {
+Type sentType = this.typeSystem.getType(CASTestSetup.SENT_TYPE);
+FeatureStructure sentence = this.cas.createFS(sentType);
+
((CASImpl)cas).ll_setIntValue(((FeatureStructureImpl)sentence).getAddress(),  
TypeSystemImpl.annotSofaFeatCode, 0);
+try {
+  this.indexRep.addFS(sentence);
+} catch (CASRuntimeException e) {
+  assertEquals("SOFAREF_NOT_SET", e.getMessageKey());
+  return;
+}
+fail("required exception not thrown"); // fail
+  }
+  
   public void testDefaultBagIndex() throws Exception {
 // create an instance of a non-annotation type
 Type tokenTypeType = this.typeSystem.getType(CASTestSetup.TOKEN_TYPE_TYPE);
@@ -107,7 +125,7 @@ public class IndexRepositoryTest extends
 
 FSIndexRepository ir = cas.getIndexRepository();
 FSIndex index = 
ir.getIndex(CASTestSetup.ANNOT_SET_INDEX);
-assertEquals(index.size(), 1);
+assertEquals(1, index.size());
 
 index = ir.getIndex(CASTestSetup.ANNOT_SORT_INDEX);
 assertEquals(2, index.size());
@@ -144,17 +162,17 @@ public class IndexRepositoryTest extends
 }
 
 // warmup and jit
-timeAdd2Indexes(fsa);
+timeAdd2Indexes(fsa, false);
 timeRemoveFromIndexes(fsa);
 
-long a2i = timeAdd2Indexes(fsa);
+long a2i = timeAdd2Indexes(fsa, false);
 long rfi = timeRemoveFromIndexes(fsa);
 
-long a2i2 = timeAdd2Indexes(fsa);
+long a2i2 = timeAdd2Indexes(fsa, false);
 long rfir = timeRemoveFromIndexesReverse(fsa);
 
-System.out.format("Timing add/remv from indexes: add1: %,d msec, add2: %,d 
msec, rmv: %,d msec, rmvReversed: %,d msec%n", 
-a2i, a2i2, rfi, rfir);
+System.out.format("Timing add/remv from indexes: add1: %,d microsec, add2: 
%,d microsec, rmv: %,d microsec, rmvReversed: %,d microsec%n", 
+a2i/1000, a2i2/1000, rfi/1000, rfir/1000);
 // big loop for doing profiling by hand and checking space recovery by hand   
 
 //for (int i = 0; i < 1; i++) {
@@ -163,6 +181,40 @@ public class IndexRepositoryTest extends
 //}
   }
   
+  public void testAddSpeed() { 
+// create an instance of an annotation type
+Feature beginFeat = 
this.typeSystem.getFeatureByFullName(CASTestSetup.TOKEN_TYPE + ":begin");
+Type fsType = this.typeSystem.getType(CASTestSetup.TOKEN_TYPE);
+FeatureStructure[] fsa = new FeatureStructure[NBR_ITEMS];
+// create 4 tokens
+for (int i = 0; i < fsa.length; i++) {
+  fsa[i] = this.cas.createFS(fsType);
+  fsa[i].setIntValue(beginFeat,  i);
+}
+
+// warmup and jit
+long prev = Long.MAX_VALUE;
+for (int i = 0; i < 5 /* 1000 */; i++) {
+  
cas.getIndexRepository().removeAllIncludingSubtypes(cas.getTypeSystem().getTopType());
+  long t = timeAdd2Indexes(fsa, false);
+  if (t < prev) {
+System.out.format("Iteration %,d Add Forward 40K took  %,d 
microsec%n", i, t/1000);
+prev = t;
+  }
+}
+
+prev = Lo

svn commit: r1743691 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:23:35 2016
New Revision: 1743691

URL: http://svn.apache.org/viewvc?rev=1743691&view=rev
Log:
[UIMA-4932] add test, fix other test now tripping extra check 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java?rev=1743691&r1=1743690&r2=1743691&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IndexRepositoryTest.java
 Fri May 13 15:23:35 2016
@@ -20,6 +20,7 @@ package org.apache.uima.cas.test;
 
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
+import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.cas.FSIndex;
 import org.apache.uima.cas.FSIndexRepository;
 import org.apache.uima.cas.FSIterator;
@@ -27,7 +28,11 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.TypeSystem;
+import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.FSIndexRepositoryImpl;
+import org.apache.uima.cas.impl.FeatureStructureImplC;
+import org.apache.uima.cas.impl.TypeSystemConstants;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
 import org.apache.uima.jcas.JCas;
@@ -64,6 +69,18 @@ public class IndexRepositoryTest extends
 indexRep = null;
   }
   
+  public void testMissingSofaRef() throws Exception {
+JCas jcas = cas.getJCas();
+Annotation a = new Annotation(jcas, 0, 4);
+try {
+  jcas.addFsToIndexes(a);
+} catch (CASRuntimeException e) {
+  assertEquals("SOFAREF_NOT_SET", e.getMessageKey());
+  return;
+}
+fail("required exception not thrown"); // fail
+  }
+  
   public void testDefaultBagIndex() throws Exception {
 // create an instance of a non-annotation type
 Type tokenTypeType = this.typeSystem.getType(CASTestSetup.TOKEN_TYPE_TYPE);
@@ -123,11 +140,13 @@ public class IndexRepositoryTest extends
* @throws CASException
*/
   public void testDupFsIndex() throws CASException {
+cas.setSofaDataString("something", "text"); // otherwise triggers failure 
in addFsToIndex - no sofa ref
 JCas jcas = cas.getJCas();
 Annotation a = new Annotation(jcas, 0, 4);
 cas.addFsToIndexes(a);
 cas.addFsToIndexes(a);
-int expected = /*FSIndexRepositoryImpl.IS_ALLOW_DUP_ADD_2_INDEXES ? 2 :*/ 
1;
+cas.addFsToIndexes(a);
+int expected = /*FSIndexRepositoryImpl.IS_ALLOW_DUP_ADD_2_INDEXES ? 4 :*/ 
2;
 assertEquals(expected, 
cas.getIndexRepository().getIndex(CASTestSetup.ANNOT_SORT_INDEX).size());
 assertEquals(expected, 
cas.getIndexRepository().getIndex(CASTestSetup.ANNOT_BAG_INDEX).size());
 assertEquals(expected, 
cas.getIndexRepository().getIndex(CAS.STD_ANNOTATION_INDEX).size());




svn commit: r1743692 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:24:13 2016
New Revision: 1743692

URL: http://svn.apache.org/viewvc?rev=1743692&view=rev
Log:
[UIMA-4932] add message

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1743692&r1=1743691&r2=1743692&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 Fri May 13 15:24:13 2016
@@ -561,6 +561,7 @@ SOFANAME_ALREADY_EXISTS = A sofaFS with
 SOFADATA_ALREADY_SET = Data for Sofa feature {0} has already been set.
 SOFANAME_NOT_FOUND = No sofaFS with name {0} found.
 SOFAREF_NOT_FOUND = No sofaFS for specified sofaRef found.
+SOFAREF_NOT_SET = Sofa reference for FS {0} is required, but it is not set.  
This can happen during deserialization when the type system changes where this 
FeatureStructure''s type definition is now a subtype of uima.cas.AnnotationBase 
but was not when the serialized form was created.
 PROTECTED_SOFA_FEATURE = Can''t use standard set methods with SofaFS features.
 JCAS_MISSING_COVERCLASS = The JCAS cover class "{0}" could not be loaded.
 INVALID_FEATURE_PATH = The feature path "{0}" is not valid.




svn commit: r1743693 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:26:53 2016
New Revision: 1743693

URL: http://svn.apache.org/viewvc?rev=1743693&view=rev
Log:
[UIMA-4932] add check for missing sofa ref; remove unused method, replace 
_typeImpl with _getTypeImpl(), rename autoindexname to 
_DefaultBagGeneratedIndex 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java?rev=1743693&r1=1743692&r2=1743693&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSIndexRepositoryImpl.java
 Fri May 13 15:26:53 2016
@@ -50,6 +50,7 @@ import org.apache.uima.internal.util.Int
 import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.ObjHashSet;
 import org.apache.uima.jcas.cas.AnnotationBase;
+import org.apache.uima.jcas.cas.Sofa;
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.tcas.Annotation;
 
@@ -1112,15 +1113,7 @@ public class FSIndexRepositoryImpl imple
   action.accept(fs);
 }
   }
-  
-  /**
-   * plus means all reachable, plus maybe others not reachable but not yet gc'd
-   * @param action -
-   */
-  public void walkReachablePlusFSsSorted(Consumer action) {
-cas.walkReachablePlusFSsSorted(action);
-  }
-  
+
   public FsIndex_singletype getNonSetSingleIndexForType(int typecode) {
 return getIndexesForType(typecode).getNonSetIndex().fsIndex_singletype;
   }
@@ -1243,13 +1236,18 @@ public class FSIndexRepositoryImpl imple
   }
   
   private  void addFS_common(T fs, boolean isAddback) {
-TypeImpl ti = ((FeatureStructureImplC)fs)._typeImpl;
+TypeImpl ti = ((FeatureStructureImplC)fs)._getTypeImpl();
 final int typeCode = ti.getCode();
 
 // https://issues.apache.org/jira/browse/UIMA-4099
 // skip test for wrong view if addback, etc.
  
 if (!isAddback && (!IS_DISABLE_ENHANCED_WRONG_INDEX_CHECK) && 
ti.isAnnotationBaseType()) {
+  Sofa sofa = ((AnnotationBase)fs).getSofa();
+  if (sofa == null) {
+throw new CASRuntimeException(
+CASRuntimeException.SOFAREF_NOT_SET, fs.toString(3));
+  }
   
   // Check that the annotationBase FS is being added to the proper Cas View
   CASImpl indexView = fs._getView();
@@ -1317,14 +1315,14 @@ public class FSIndexRepositoryImpl imple
   }
 
   private static final String getAutoIndexNameForType(Type type) {
-return "_" + type.getName() + "_GeneratedIndex";
+return "_" + type.getName() + "_DefaultBagGeneratedIndex";
   }
 
   boolean removeFS_ret(TOP fs, boolean skipBagIndexes) {
 if (skipBagIndexes && !fs._inSetSortedIndex()) {
   return false;
 }
-final int typeCode = fs._typeImpl.getCode();
+final int typeCode = fs._getTypeImpl().getCode();
 final IndexesForType i4t = getIndexesForType(typeCode);
 final ArrayList> indexes4type = i4t.indexesForType;
 
@@ -1474,7 +1472,7 @@ public class FSIndexRepositoryImpl imple
 //   * @return true if this fs is found in a Set or Sorted index.  
 //   */
 //  public boolean isInSetOrSortedIndexInThisView(FeatureStructureImplC fs) {
-//final TypeImpl ti = fs._typeImpl;
+//final TypeImpl ti = fs._getTypeImpl();
 //
 //final IndexesForType i4t = indexArray[ti.getCode()];
 //
@@ -1531,7 +1529,7 @@ public class FSIndexRepositoryImpl imple
 //  boolean removeIfInCorrputableIndexInThisView(FeatureStructure afs) {
 //return removeFS_ret((TOP) afs, SKIP_BAG_INDEXES);
 TOP fs = (TOP) afs;
-TypeImpl ti = fs._typeImpl;
+TypeImpl ti = fs._getTypeImpl();
 final IndexesForType i4t = getIndexesForType(ti.getCode());
  
 int si = i4t.aSortedIndex;  




svn commit: r1743694 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 15:28:23 2016
New Revision: 1743694

URL: http://svn.apache.org/viewvc?rev=1743694&view=rev
Log:
[UIMA-4932] add message

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java?rev=1743694&r1=1743693&r2=1743694&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 Fri May 13 15:28:23 2016
@@ -23,6 +23,7 @@ import org.apache.uima.UIMARuntimeExcept
 
 /**
  * Runtime exception class for package org.apache.uima.cas.
+ * Messages in org.apache.uima.UIMAException_Messages
  */
 public class CASRuntimeException extends UIMARuntimeException {
 
@@ -161,7 +162,10 @@ public class CASRuntimeException extends
/** No sofaFS for specified sofaRef found. */
public static final String SOFAREF_NOT_FOUND = "SOFAREF_NOT_FOUND";
 
-   /** Can''t use standard set methods with SofaFS features. */
+  /** Sofa reference for FS {0} is required, but it is not set.  This can 
happen during deserialization when the type system changes where this 
FeatureStructure''s type definition is now a subtype of uima.cas.AnnotationBase 
but was not when the serialized form was created.*/
+  public static final String SOFAREF_NOT_SET= "SOFAREF_NOT_SET";
+
+  /** Can''t use standard set methods with SofaFS features. */
public static final String PROTECTED_SOFA_FEATURE = 
"PROTECTED_SOFA_FEATURE";
 
/** The JCAS cover class "{0}" could not be loaded. */




svn commit: r1743715 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util: Misc.java Obj2IntIdentityHashMap.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:34:38 2016
New Revision: 1743715

URL: http://svn.apache.org/viewvc?rev=1743715&view=rev
Log:
[UIMA-4674] add general method for shrinking a table on clear/reset to Misc, 
make use of it 

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java?rev=1743715&r1=1743714&r2=1743715&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Misc.java
 Fri May 13 18:34:38 2016
@@ -33,6 +33,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.WeakHashMap;
 import java.util.function.Consumer;
+import java.util.function.IntConsumer;
 import java.util.regex.Pattern;
 
 import org.apache.uima.UIMARuntimeException;
@@ -459,6 +460,34 @@ public class Misc {
 }
   }
 
+  public static boolean maybeShrink(
+  boolean secondTimeShrinkable, 
+  int size, 
+  int capacity, 
+  int factor, 
+  int minCapacity,
+  IntConsumer realloc,
+  Runnable reset) {
+
+if (size < (capacity >> factor)) {
+  if (secondTimeShrinkable) {
+int newCapacity = Math.max(minCapacity, capacity >> 1);
+if (newCapacity < capacity) {
+  realloc.accept(newCapacity);
+} else {
+  reset.run();
+}
+return false;   
+  } else {
+reset.run();
+return true;
+  }
+} else {
+  reset.run();
+  return false;  
+}
+  }
+  
 //private static final Function uimaSystemFindLoadedClass;
 //static {
 //  try {

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java?rev=1743715&r1=1743714&r2=1743715&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Obj2IntIdentityHashMap.java
 Fri May 13 18:34:38 2016
@@ -164,28 +164,10 @@ public class Obj2IntIdentityHashMap {
   }
   
   public void clear() {
-// see if size is less than the 1/2 size that triggers expansion
-if (size <  (sizeWhichTriggersExpansion >>> 1)) {
-  // if 2nd time then shrink by 50%
-  //   this is done to avoid thrashing around the threshold
-  if (secondTimeShrinkable) {
-secondTimeShrinkable = false;
-final int currentCapacity = getCapacity();
-final int newCapacity = Math.max(initialCapacity, currentCapacity >>> 
1);
-if (newCapacity < currentCapacity) { 
-  newTable(newCapacity);  // shrink table by 50%
-} else { // don't shrink below minimum
-  resetArray();
-}
-return;
-
-  } else {
-secondTimeShrinkable = true;
-  }
-} else {
-  secondTimeShrinkable = false; // reset this to require 2 triggers in a 
row
-}
-   resetArray();
+secondTimeShrinkable = Misc.maybeShrink(
+secondTimeShrinkable, size, getCapacity(), 2, initialCapacity,
+newCapacity -> newTable(newCapacity),
+() -> resetArray());
   }
 
   /** 




svn commit: r1743716 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: BinaryCasSerDes.java BinaryCasSerDes4.java BinaryCasSerDes6.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:41:28 2016
New Revision: 1743716

URL: http://svn.apache.org/viewvc?rev=1743716&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes6.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java?rev=1743716&r1=1743715&r2=1743716&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
 Fri May 13 18:41:28 2016
@@ -325,7 +325,7 @@ public class BinaryCasSerDes {
  * @param heapAddr - 
  */
 private void maybeRemove(int heapAddr) {
-  TypeImpl type = fs._typeImpl;
+  TypeImpl type = fs._getTypeImpl();
   boolean wasRemoved;
   if (!type.isArray()) {
 FeatureImpl feat = type.getFeatureImpls()[heapAddr - fsStartAddr - 1];
@@ -1231,9 +1231,6 @@ public class BinaryCasSerDes {
 final boolean isMarkSet = mark != null;
 
 if (isMarkSet) {
-  if (csds.getHeapEnd() == 0) {
-System.out.println("debug");
-  }
   csds.setup(mark.getNextFSId(), csds.getHeapEnd()); 
 } else {
   csds.clear();
@@ -1269,7 +1266,7 @@ public class BinaryCasSerDes {
* @param isMarkSet true if mark is set, used to compute first 
*/
   private void extractFsToV2Heaps(TOP fs, boolean isMarkSet, 
Obj2IntIdentityHashMap fs2addr) {
-TypeImpl type = fs._typeImpl;
+TypeImpl type = fs._getTypeImpl();
 // pos is the pos in the new heaps; for delta it needs adjustment if 
written out  
 int pos = heap.add(getFsSpaceReq(fs, type), type.getCode());  
 
@@ -1642,7 +1639,7 @@ public class BinaryCasSerDes {
*/
   private void updateHeapSlot(BinDeserSupport bds, int slotAddr, int 
slotValue, Int2ObjHashMap addr2fs) {
 TOP fs = bds.fs;
-TypeImpl type = fs._typeImpl;
+TypeImpl type = fs._getTypeImpl();
 if (type.isArray()) {
   // only heap stored arrays have mod updates.  
   final int hsai = slotAddr - bds.fsStartAddr - arrayContentOffset;  // 
heap stored array index

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java?rev=1743716&r1=1743715&r2=1743716&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
 Fri May 13 18:41:28 2016
@@ -615,7 +615,7 @@ public class BinaryCasSerDes4 implements
 //  if (isDelta) {
 //// debug
 //for (TOP fs : csds.sortedFSs) {
-//  System.out.format("debug heapAddr: %,d type: %s%n", 
csds.fs2addr.get(fs), fs._typeImpl.getShortName());
+//  System.out.format("debug heapAddr: %,d type: %s%n", 
csds.fs2addr.get(fs), fs._getTypeImpl().getShortName());
 //  if (csds.fs2addr.get(fs) == 439) {
 //System.out.println("debug");
 //  }
@@ -714,7 +714,7 @@ public class BinaryCasSerDes4 implements
 }  
 
 private void writeFs(TOP fs) throws IOException {
-  TypeImpl type = fs._typeImpl;
+  TypeImpl type = fs._getTypeImpl();
   int typeCode = type.getCode();
   writeVnumber(typeCode_dos, typeCode);
   
@@ -803,7 +803,7 @@ public class BinaryCasSerDes4 implements
   if (length == 0) {
 return;
   }
-  final TypeImpl type = fs._typeImpl;
+  final TypeImpl type = fs._getTypeImpl();
   
   // output values
 
@@ -1240,7 +1240,7 @@ public class BinaryCasSerDes4 implements
   if (isDelta && !mark.isNew(fs)) {
 return;
   }
-  TypeImpl type = fs._typeImpl;
+  TypeImpl type = fs._getTypeImpl();
  
   if (type.isArray()) {
 if (type.getComponentSlotKind() == SlotKind.Slot_StrRef) {
@@ -1263,7 +1263,7 @@ public class BinaryCasSerDes4 implements
  */
 private v

svn commit: r1743717 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:44:32 2016
New Revision: 1743717

URL: http://svn.apache.org/viewvc?rev=1743717&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java?rev=1743717&r1=1743716&r2=1743717&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureStructureImplC.java
 Fri May 13 18:44:32 2016
@@ -145,7 +145,7 @@ public class FeatureStructureImplC imple
*/
   public final CASImpl _casView;  
   
-  public TypeImpl _typeImpl;  // experiment : support switching the type
+  private TypeImpl _typeImpl;  //for backwards compatibility and deser typed 
arrays: support switching the type
   
   // Called only to generate a dummy value for the REMOVED flag in bag indexes
 
@@ -1402,4 +1402,13 @@ public class FeatureStructureImplC imple
 //_flags = (_flags & ~bitMaskRefOffset) | v << shiftRefOffset;
 //  }
 
+  public TypeImpl _getTypeImpl() {
+return _typeImpl;
+  }
+  
+  protected void _setTypeImpl(TypeImpl ti) {
+_typeImpl = ti;
+  }
+  
+
 }
\ No newline at end of file




svn commit: r1743720 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:49:44 2016
New Revision: 1743720

URL: http://svn.apache.org/viewvc?rev=1743720&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection. Make local cas copy of 
id2fsw 

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=1743720&r1=1743719&r2=1743720&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
 Fri May 13 18:49:44 2016
@@ -28,6 +28,7 @@ import java.io.PrintStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
+import java.lang.ref.WeakReference;
 import java.net.URL;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -43,6 +44,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
+
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.UIMARuntimeException;
 import org.apache.uima.cas.AbstractCas_ImplBase;
@@ -244,7 +246,7 @@ public class CASImpl extends AbstractCas
 
 FsChange(TOP fs) {
   this.fs = fs;
-  TypeImpl ti = fs._typeImpl;
+  TypeImpl ti = fs._getTypeImpl();
   featuresModified = (ti.highestOffset == -1) ? null : new 
BitSet(ti.highestOffset + 1); 
   arrayUpdates = (ti.isArray()) ? new PositiveIntSet_impl() : null;
 }
@@ -460,6 +462,7 @@ public class CASImpl extends AbstractCas
   // fss
   fsIdGenerator = 0;
   id2fs.clear();
+  baseCAS.resetId2fswInAllViews(); // follows id2fs.clear() above
 
   // index corruption avoidance
   fssTobeAddedback.clear();
@@ -584,6 +587,7 @@ public class CASImpl extends AbstractCas
*/
   
   private TypeSystemImpl tsi_local;
+  private ArrayList id2fsw_local;
 
   // CASImpl(TypeSystemImpl typeSystem) {
   // this(typeSystem, DEFAULT_INITIAL_HEAP_SIZE);
@@ -709,7 +713,7 @@ public class CASImpl extends AbstractCas
 
   private void checkInternalCodes(CASMgrSerializer ser) throws 
CASAdminException {
 if ((ser.topTypeCode > 0)
-&& (ser.topTypeCode != ((TypeImpl) 
getTypeSystemImpl().getTopType()).getCode())) {
+&& (ser.topTypeCode != topTypeCode)) {
   throw new CASAdminException(CASAdminException.DESERIALIZATION_ERROR);
 }
 if (ser.featureOffsets == null) {
@@ -805,6 +809,17 @@ public class CASImpl extends AbstractCas
 this.getBaseCAS().tsi_local = ts;  
   }
   
+  void resetId2fswInAllViews() {
+final List sn2v = this.svd.sofaNbr2ViewMap;
+if (sn2v.size() > 0) {
+  for (CASImpl view : sn2v.subList(1, sn2v.size())) {
+view.id2fsw_local = this.svd.id2fs.getId2fsw();
+  }
+} 
+this.getBaseCAS().id2fsw_local = this.svd.id2fs.getId2fsw();  
+
+  }
+  
   @Override
   public ConstraintFactory getConstraintFactory() {
 return ConstraintFactory.instance();
@@ -2258,7 +2273,7 @@ public class CASImpl extends AbstractCas
   public final int ll_getIntValue(int fsRef, int featureCode) {
 TOP fs = getFsFromId_checked(fsRef);
 if (featureCode == 0) {
-  return fs._typeImpl.getCode(); // case where the type is being requested
+  return fs._getTypeImpl().getCode(); // case where the type is being 
requested
 }
 FeatureImpl fi = getFeatFromCode_checked(featureCode);
 
@@ -2560,7 +2575,7 @@ public class CASImpl extends AbstractCas
* @return true if was removed from one or more indexes
*/
   boolean removeFromIndexAnyView(final TOP fs, FSsTobeAddedback toBeAdded, 
boolean isSkipBagIndexes) {
-final TypeImpl ti = ((FeatureStructureImplC)fs)._typeImpl;
+final TypeImpl ti = ((FeatureStructureImplC)fs)._getTypeImpl();
 if (ti.isAnnotationBaseType()) {
   boolean r = removeAndRecord(fs, 
   (FSIndexRepositoryImpl) 
fs._casView.getIndexRepository(), 
@@ -2622,7 +2637,7 @@ public class CASImpl extends AbstractCas
 
 FeatureImpl fi = getFeatFromCode_checked(featureCode);
 
-if (fs._typeImpl.isArray()) {
+if (fs._getTypeImpl().isArray()) {
   throw new UnsupportedOperationException("ll_setIntValue not permitted to 
set a feature of an array");
 }
 SlotKind kind = fi.getSlotKind();
@@ -2704,6 +2719,7 @@ public class CASImpl extends AbstractCas
   }
 
   private void switchFsType(TOP fs, int value) {
+//throw new UnsupportedOperationE

svn commit: r1743723 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: CASSerializer.java CasSerializerSupport.java CommonSerDesSequential.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:50:58 2016
New Revision: 1743723

URL: http://svn.apache.org/viewvc?rev=1743723&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CommonSerDesSequential.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java?rev=1743723&r1=1743722&r2=1743723&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASSerializer.java
 Fri May 13 18:50:58 2016
@@ -428,9 +428,9 @@ public class CASSerializer implements Se
 // because the output is only the new elements, this populates the arrays 
with only the new elements
 //   Note: all heaps reserve slot 0 for null, real data starts at position 
1
 final CommonSerDesSequential csds = cas.getCsds(); 
-if (csds.getHeapEnd() == 0) {
-  System.out.println("debug");
-}
+//if (csds.getHeapEnd() == 0) {
+//  System.out.println("debug");
+//}
 scanAllFSsForBinarySerialization(bcsd, mark, csds); // populates the arrays
 
 try {
@@ -617,7 +617,7 @@ public class CASSerializer implements Se
 final Obj2IntIdentityHashMap fs2addr = csds.fs2addr;
 for (FsChange fsChange : fssModified) {
   final TOP fs = fsChange.fs;
-  final TypeImpl type = fs._typeImpl;
+  final TypeImpl type = fs._getTypeImpl();
   if (fsChange.arrayUpdates != null) {
 switch(type.getComponentSlotKind()) {
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java?rev=1743723&r1=1743722&r2=1743723&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
 Fri May 13 18:50:58 2016
@@ -675,7 +675,7 @@ public class CasSerializerSupport {
 }
   
 if (isFiltering) {
-  String typeName = fs._typeImpl.getName();
+  String typeName = fs._getTypeImpl().getName();
   if (filterTypeSystem.getType(typeName) == null) {
 return -1; // this type is not in the target type system
   }
@@ -705,7 +705,7 @@ public class CasSerializerSupport {
   if (!alreadySet) {
 typeUsed.set(typeCode);
 
-String typeName = fs._typeImpl.getName();
+String typeName = fs._getTypeImpl().getName();
 XmlElementName newXel = csss.uimaTypeName2XmiElementName(typeName);
 
 if (!needNameSpaces) {
@@ -832,7 +832,7 @@ public class CasSerializerSupport {
 
 for (TOP elem : theArray) {
   if (isFiltering &&
-  (null == filterTypeSystem.getType(elem._typeImpl.getName( {
+  (null == 
filterTypeSystem.getType(elem._getTypeImpl().getName( {
 continue;  // skip because not in filter type system
   }
   if (elem != null) {
@@ -846,7 +846,7 @@ public class CasSerializerSupport {
   
   boolean insideListNode = fs instanceof CommonList;
 
-  for (FeatureImpl fi : fs._typeImpl.getFeatureImpls()) {
+  for (FeatureImpl fi : fs._getTypeImpl().getFeatureImpls()) {
 if (isFiltering && filterTypeSystem.getFeatureByFullName(fi.getName()) 
== null) { 
   // skip features that aren't in the target type system
 continue;
@@ -1011,13 +1011,7 @@ public class CasSerializerSupport {
 //  }
 //  return r;
 //}
-  
-private int compareInts(int i1, int i2) {
-  return (i1 == i2) ? 0 :
- (i1 >  i2) ? 1 : -1;
-}
-
-
+  
 /** 
  * Called for JSon Serialization
  * Sort a view, by type and then by begin/end asc/des for subtypes of 
Annotation,
@@ -1026,7 +1020,7 @@ public class CasSerializerSupport {
 public final Comparator sortFssByType =

svn commit: r1743725 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl: FeaturePathImpl.java FeatureValuePathImpl.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 18:51:24 2016
New Revision: 1743725

URL: http://svn.apache.org/viewvc?rev=1743725&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeaturePathImpl.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureValuePathImpl.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeaturePathImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeaturePathImpl.java?rev=1743725&r1=1743724&r2=1743725&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeaturePathImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeaturePathImpl.java
 Fri May 13 18:51:24 2016
@@ -547,15 +547,15 @@ class FeaturePathImpl implements Feature
 }
 
 if (this.featurePathElementNames.size() == 0) { 
-  targetType = fs._typeImpl;
+  targetType = fs._getTypeImpl();
   return fs;
 }
 
 // we have a feature path that must be evaluated
 
-if (boundBaseType == null || !boundBaseType.subsumes(fs._typeImpl)) {
+if (boundBaseType == null || !boundBaseType.subsumes(fs._getTypeImpl())) {
   boundFeatures.clear();  // reset if supplied FS not the one the features 
were calculated for.
-  boundBaseType = fs._typeImpl;
+  boundBaseType = fs._getTypeImpl();
 }
  
 // set current FS values
@@ -579,7 +579,7 @@ class FeaturePathImpl implements Feature
  * 
  * So we check if this bound feature is appropriate for the current FS
  */
-if ( ! 
((TypeImpl)targetFeature.getDomain()).subsumes(currentFs._typeImpl)) {
+if ( ! 
((TypeImpl)targetFeature.getDomain()).subsumes(currentFs._getTypeImpl())) {
   setTargetFeature(currentFs, i);
 }
   } else {
@@ -644,10 +644,10 @@ class FeaturePathImpl implements Feature
   }
 
   private void setTargetFeature(TOP currentFs, int i) {
-targetFeature = 
currentFs._typeImpl.getFeatureByBaseName(featurePathElementNames.get(i));
+targetFeature = 
currentFs._getTypeImpl().getFeatureByBaseName(featurePathElementNames.get(i));
 if (targetFeature == null) {
   throw new CASRuntimeException(MESSAGE_DIGEST, 
"INVALID_FEATURE_PATH_FEATURE_NOT_DEFINED", 
-  new Object[] { getFeaturePathString(), 
currentFs._typeImpl.getName(), this.featurePathElementNames.get(i) });
+  new Object[] { getFeaturePathString(), 
currentFs._getTypeImpl().getName(), this.featurePathElementNames.get(i) });
 }
 boundFeatures.add(targetFeature);  // cache for future use
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureValuePathImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureValuePathImpl.java?rev=1743725&r1=1743724&r2=1743725&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureValuePathImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FeatureValuePathImpl.java
 Fri May 13 18:51:24 2016
@@ -226,7 +226,8 @@ public class FeatureValuePathImpl implem
 
}
 
-   public Object evaluate(int currentFS, LowLevelCAS cas) {
+   @Override
+  public Object evaluate(int currentFS, LowLevelCAS cas) {
String valueType = getValueType();
if (CAS.TYPE_NAME_FLOAT.equals(valueType)) {
return evaluateAsFloat(currentFS, cas);
@@ -245,7 +246,8 @@ public class FeatureValuePathImpl implem
}
}
 
-   public Float evaluateAsFloat(int currentFS, LowLevelCAS cas) {
+   @Override
+  public Float evaluateAsFloat(int currentFS, LowLevelCAS cas) {
if (currentFS == 0) {
return null;
}
@@ -314,7 +316,8 @@ public class FeatureValuePathImpl implem
}
}
 
-   public Float[] evaluateAsFloatArray(int currentFS, LowLevelCAS cas) {
+   @Override
+  public Float[] evaluateAsFloatArray(int currentFS, LowLevelCAS cas) {
if (!getValueType().equals(CAS.TYPE_NAME_FLOAT_ARRAY)) {
throw new IllegalStateException("Feature path does not 
denote a float array");
}
@@ -402,7 +4

svn commit: r1743730 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 19:29:03 2016
New Revision: 1743730

URL: http://svn.apache.org/viewvc?rev=1743730&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LinearTypeOrderBuilderImpl.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASSerializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasDeserializer.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XmiCasSerializer.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LinearTypeOrderBuilderImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LinearTypeOrderBuilderImpl.java?rev=1743730&r1=1743729&r2=1743730&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LinearTypeOrderBuilderImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/LinearTypeOrderBuilderImpl.java
 Fri May 13 19:29:03 2016
@@ -111,8 +111,8 @@ public class LinearTypeOrderBuilderImpl
  */
 @Override
 public int compare(FeatureStructure fs1, FeatureStructure fs2) {
-  TypeImpl t1 = ((FeatureStructureImplC)fs1)._typeImpl;
-  TypeImpl t2 = ((FeatureStructureImplC)fs2)._typeImpl;
+  TypeImpl t1 = ((FeatureStructureImplC)fs1)._getTypeImpl();
+  TypeImpl t2 = ((FeatureStructureImplC)fs2)._getTypeImpl();
   if (t1 == t2) return 0;
   return Short.compare(this.typeCodeToOrder[t1.getCode()], 
this.typeCodeToOrder[t2.getCode()]);

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java?rev=1743730&r1=1743729&r2=1743730&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeImpl.java
 Fri May 13 19:29:03 2016
@@ -819,7 +819,7 @@ public class TypeImpl implements Type, C
 return (v == null && (isRefType || isStringOrStringSubtype())) ||
(v instanceof String && isStringOrStringSubtype()) ||
((v instanceof FeatureStructureImplC) &&
- subsumes( ((FeatureStructureImplC)v)._typeImpl)) ||
+ subsumes( ((FeatureStructureImplC)v)._getTypeImpl())) ||
this.getCode() == TypeSystemImpl.javaObjectTypeCode;
   }
   

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java?rev=1743730&r1=1743729&r2=1743730&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
 Fri May 13 19:29:03 2016
@@ -2505,8 +2505,8 @@ public class TypeSystemImpl implements T
*/
   void fixupFSArrayTypes(TypeImpl featRange, TOP arrayFs) {
 if (featRange.isTypedFsArray()) {
-  if 
(arrayFs._typeImpl.getComponentType().subsumesStrictly(featRange.getComponentType()))
 {
-arrayFs._typeImpl = featRange;  // replace more general type with more 
specific type
+  if 
(arrayFs._getTypeImpl().getComponentType().subsumesStrictly(featRange.getComponentType()))
 {
+arrayFs._setTypeImpl(featRange);  // replace more general type with 
more specific type
   }
 }
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/XCASDeserializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/i

svn commit: r1743736 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 19:59:04 2016
New Revision: 1743736

URL: http://svn.apache.org/viewvc?rev=1743736&view=rev
Log:
no Jira - update docs

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html?rev=1743736&r1=1743735&r2=1743736&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/package.html
 Fri May 13 19:59:04 2016
@@ -34,8 +34,8 @@
 Internals documentation
 NOTE: This documentation is plain HTML, generated from a WYSIWIG editor 
"tinymce".   The way to work on this:  after setting up a small 
web page with the tinymce (running from a local file), use the Tools - source 
code to cut/paste between this file's source and that editor.
 Java Cover Objects for version 3
-The Java Cover Objects are no longer cover objects; instead, 
instances are the Feature Structures for a particular UIMA type of 
the same name (generally - some built-ins have some name mapping done for the 
package name).
-There is one definition of these objects per UIMA Type System. 
 Support for PEARs having a different "customization" of JCas class is not 
supported in v3.
+The Java Cover Objects are no longer cover objects; instead, these objects 
are the Feature Structures.  The Java classes for these objects are in a 
hierarchy that corresponds to the UIMA type hierarchy.  JCasGen continues 
to serve to generate (for user, not for built-in types) particular Java Classes 
for particular UIMA Types.  And, as before, JCasGen'd classes are 
optional.  If there was not a JCasGen'd class for "MyType" (assume a 
subtype of "Annotation"), then the most specific supertype of "MyType" which 
has a particular corresponding Java cover class, is used.  (This is how it 
works in V2, also). 
+There is one definition of these objects per UIMA Type System. 
 Support for PEARs having different "customizations" of the same JCas 
classname is not supported in v3.
 
 This loss of capability is mitigated by the addition of more kinds of Java 
types as built-in values.
 The reason for this not being supported is that there's no solution 
figured out for sharing types between the outer and PEAR pipelines, without 
encountering class-cast exceptions.
@@ -44,13 +44,15 @@
 Much of the infrastructure is kept as-is in version 3 to support backwards 
compatibility.
 Format of a JCas class version 3
 The _Type is not used.  May revisit this if users are using the 
low-level access made possible by _Type.
-There is one definition of the class per type system.  Type systems 
are often shared among multiple CASes.  Each definition is loaded under a 
specific loader for that type system.  The loader is set up to delegate to 
the parent for all classes except the JCas types, and for those, it generates 
them using ASM byte code generation from the fully merged TypeSystem 
information and existing "customizations".
-Each feature is represented by the corresponding native Java type. 
 Arrays are represented by Java Arrays.  Getters and Setters are 
provided as before.  Constructors are provided as before.
+There is one definition of the class per type system.  Type systems 
are often shared among multiple CASes.  Each definition is loaded under a 
specific loader for that type system.  
+(Not implemented) The loader 
is set up to delegate to the parent for all classes except the JCas types, and 
for those, it generates them using ASM byte code generation from the fully 
merged TypeSystem information and existing "customizations".
+Each feature is stored in one of two arrays, kept per Java Object Feature 
Structure Instance: an "int" array, holding 
boolean/byte/short/int/long/float/double values, and a "Object" array holding 
strings/refs-to-other-FSs.  Longs and Doubles take 2 int slots.
+Built-in arrays have their array parts represented by native Java Arrays. 
 Getters and Setters are provided as before.  Constructors are 
provided as before.
 Extra fields in the Feature Structure include both instance and class 
fields:
 
-(class) a reference to the TypeImpl for this class - initialized by a 
reference to a TypeSystemImpl thread local value, at load time.
-(class) a reference to all of the FeatureImpls, as an array, indexed by 
the feature offset value
-(instance) a reference to the CAS View used when this feature structure 
was created
+(static class fields) a set of

svn commit: r1743741 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas: impl/FSBagIndexTest.java impl/SerDesTest6.java test/FeatureStructureTest.java test/Itera

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:07:13 2016
New Revision: 1743741

URL: http://svn.apache.org/viewvc?rev=1743741&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection, plus minor updates to tests

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java?rev=1743741&r1=1743740&r2=1743741&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/FSBagIndexTest.java
 Fri May 13 20:07:13 2016
@@ -112,8 +112,8 @@ public class FSBagIndexTest extends Test
   r.add(it.get());
   it.moveToNext();
 }
-Collections.sort(r, (fs1, fs2) -> Integer.compare(fs1._id, fs2._id));
-Arrays.sort(ns,  (fs1, fs2) -> Integer.compare(fs1._id,  fs2._id));
+Collections.sort(r);
+Arrays.sort(ns);
 assertTrue(Arrays.equals(ns, r.toArray()));
 assertFalse(it.isValid());
   }

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java?rev=1743741&r1=1743740&r2=1743741&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
 Fri May 13 20:07:13 2016
@@ -82,6 +82,7 @@ public class SerDesTest6 extends TestCas
   private static long seed;
   // -8,093,220,039,004,886,811
 //  final private static Random random = setRandom(seed = 
-8093220039004886811L);
+//  final private static Random random = setRandom(seed = 
-7_080_877_499_529_731_700L);
   final private static Random random = setRandom();
   static {System.out.format("SerDesTest6 RandomSeed: %,d%n", seed); }
   private final String testDocText = "test document text";
@@ -581,6 +582,7 @@ public class SerDesTest6 extends TestCas
   
   private void serdesDelta(TTypeSystem m) {
 remoteCas = setupCas(m);  // create empty new CAS with specified type 
system from m.ts
+casSrc.reset();
 loadCas(casSrc, mSrc);// load up the src cas using mSrc spec
 ReuseInfo[] ri = serializeDeserialize(casSrc, remoteCas, null, null);
//src -> serialize -> deserialize -> rmt 
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java?rev=1743741&r1=1743740&r2=1743741&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/FeatureStructureTest.java
 Fri May 13 20:07:13 2016
@@ -254,7 +254,7 @@ public class FeatureStructureTest extend
 Annotation fs = cas.getFsFromId(tokId);
 assertTrue(fs == token);
 assertTrue(fs.id() == token.id());
-assertEquals(ts.annotType, fs._typeImpl);
+assertEquals(ts.annotType, fs._getTypeImpl());
 assertEquals(fs.getBegin(), 3);
 assertEquals(fs.getEnd(), 5);
 assertEquals(sofa, fs.getSofa());
@@ -283,7 +283,7 @@ public class FeatureStructureTest extend
 TOP ttt = cas.getFsFromId(tokId);
 assertTrue(ttt != token);
 assertTrue(ttt.id() == tokId);
-assertEquals(ttt._typeImpl, tokenTypeType);
+assertEquals(ttt._getTypeImpl(), tokenTypeType);
 assertTrue(fsa.get(0) == ttt);
 assertTrue(fsl.getHead() == ttt);
 

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
URL: 
http://svn.apache.org/viewvc

svn commit: r1743744 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:08:56 2016
New Revision: 1743744

URL: http://svn.apache.org/viewvc?rev=1743744&view=rev
Log:
[UIMA-4674] define a type system having an array of a specific Feature Structure

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml?rev=1743744&r1=1743743&r2=1743744&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/resources/CASTests/desc/ArrayIndexTest.xml
 Fri May 13 20:08:56 2016
@@ -1,91 +1,101 @@
-
-
-
-http://uima.apache.org/resourceSpecifier";>
-org.apache.uima.java
-true
-
org.apache.uima.cas.test.ArrayIndexTest
-
-
-ArrayIndexTest
-
-1.0
-The Apache Software Foundation
-
-
-
-
-
-
-
-
-  
-   
- uima.test.Child1Annotation
- 
- uima.tcas.Annotation
-   
-   
- uima.test.Child2Annotation
- 
- uima.tcas.Annotation
-   
-   
- uima.test.Child2ChildAnnotation
- 
- uima.test.Child2Annotation
-   
-   
- uima.test.Type
- 
- uima.cas.TOP
-   
-  
-
-
-
-  
-
-
-
-  
-ArrayIndex
-uima.cas.FSArray
-bag
-
-  
-  
-
- 
-
-
-   
-
-
-
-
-x-unspecified
-
-
-
-
-
-
+
+
+http://uima.apache.org/resourceSpecifier";>
+org.apache.uima.java
+true
+
org.apache.uima.cas.test.ArrayIndexTest
+
+
+ArrayIndexTest
+
+1.0
+The Apache Software Foundation
+
+
+
+
+
+
+  
+   
+ uima.test.Child1Annotation
+ 
+ uima.tcas.Annotation
+   
+   
+ uima.test.Child2Annotation
+ 
+ uima.tcas.Annotation
+   
+   
+ uima.test.Child2ChildAnnotation
+ 
+ uima.test.Child2Annotation
+   
+   
+ uima.test.Type
+ 
+ uima.cas.TOP
+   
+  
+  uima.test.type.RefFsArraySubtype
+  
+  uima.cas.TOP
+  
+
+  refToDeclFsArraySubtype
+  
+  uima.cas.FSArray
+  uima.tcas.Annotation
+
+  
+
+  
+
+
+  
+
+
+
+  
+
+ArrayIndex
+uima.cas.FSArray
+bag
+
+
+  
+
+
+
+
+
+
+x-unspecified
+
+
+
+
+  true
+  true
+  false
+
+  
+




svn commit: r1743745 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:10:00 2016
New Revision: 1743745

URL: http://svn.apache.org/viewvc?rev=1743745&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection, plus minor updates to tests

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java?rev=1743745&r1=1743744&r2=1743745&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/util/CasCopier.java
 Fri May 13 20:10:00 2016
@@ -579,7 +579,7 @@ public class CasCopier {
   
   while (it.hasNext()) {
 final TOP fs = it.nextNvc();
-  //  System.out.format("debug  id: %,d  type: %s%n", fs.id(), 
fs._typeImpl.getShortName());
+  //  System.out.format("debug  id: %,d  type: %s%n", fs.id(), 
fs._getTypeImpl().getShortName());
   //Iterator indexes = 
srcCasViewImpl.getIndexRepository().ll_getIndexes();
   //while (indexes.hasNext()) {
   //  LowLevelIndex index = indexes.next();
@@ -771,7 +771,7 @@ public class CasCopier {
   return copy;
 }
 
-TypeImpl tgtTi = getTargetType(((TOP)srcFs)._typeImpl);
+TypeImpl tgtTi = getTargetType(((TOP)srcFs)._getTypeImpl());
 if (null == tgtTi) {
   return null; // not in target, no FS to create
 }
@@ -965,7 +965,7 @@ public class CasCopier {
   private TOP copyArray(TOP srcFS) {
 final CommonArray srcCA = (CommonArray) srcFS;
 final int size = srcCA.size();
-final TypeImpl tgtTi = getTargetType(((TOP)srcFS)._typeImpl);  // could be 
null for src = e.g. Annotation[]
+final TypeImpl tgtTi = getTargetType(((TOP)srcFS)._getTypeImpl());  // 
could be null for src = e.g. Annotation[]
 
 if (tgtTi == null) {
   return null; // can't copy




svn commit: r1743747 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:12:53 2016
New Revision: 1743747

URL: http://svn.apache.org/viewvc?rev=1743747&view=rev
Log:
[UIMA-4674] _typeImpl not final (to support ll_setInt backward compatibility), 
change refs to it to _getTypeImpl() for protection, and change in data type 
returned for getFeatureImpls.

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java?rev=1743747&r1=1743746&r2=1743747&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/main/java/org/apache/uima/json/JsonCasSerializer.java
 Fri May 13 20:12:53 2016
@@ -20,21 +20,24 @@
 package org.apache.uima.json;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.uima.cas.ByteArrayFS;
 import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.FeatureStructure;
 import org.apache.uima.cas.Marker;
 import org.apache.uima.cas.TypeSystem;
-import org.apache.uima.cas.impl.ByteArrayFSImpl;
+import org.apache.uima.cas.function.IntConsumer_withIOException;
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.CasSerializerSupport;
 import org.apache.uima.cas.impl.CasSerializerSupport.CasDocSerializer;
 import 
org.apache.uima.cas.impl.CasSerializerSupport.CasSerializerSupportSerialize;
-import org.apache.uima.cas.impl.ListUtils;
+import org.apache.uima.cas.impl.FeatureImpl;
 import org.apache.uima.cas.impl.LowLevelCAS;
 import org.apache.uima.cas.impl.MarkerImpl;
 import org.apache.uima.cas.impl.TypeImpl;
@@ -42,10 +45,28 @@ import org.apache.uima.cas.impl.TypeSyst
 import org.apache.uima.cas.impl.XmiSerializationSharedData;
 import org.apache.uima.cas.impl.XmiSerializationSharedData.XmiArrayElement;
 import org.apache.uima.internal.util.IntVector;
+import org.apache.uima.internal.util.Misc;
 import org.apache.uima.internal.util.PositiveIntSet;
 import org.apache.uima.internal.util.PositiveIntSet_impl;
 import org.apache.uima.internal.util.XmlElementName;
 import org.apache.uima.internal.util.rb_trees.RedBlackTree;
+import org.apache.uima.jcas.cas.BooleanArray;
+import org.apache.uima.jcas.cas.ByteArray;
+import org.apache.uima.jcas.cas.CommonArray;
+import org.apache.uima.jcas.cas.DoubleArray;
+import org.apache.uima.jcas.cas.EmptyList;
+import org.apache.uima.jcas.cas.FSArray;
+import org.apache.uima.jcas.cas.FloatArray;
+import org.apache.uima.jcas.cas.IntegerArray;
+import org.apache.uima.jcas.cas.LongArray;
+import org.apache.uima.jcas.cas.NonEmptyFSList;
+import org.apache.uima.jcas.cas.NonEmptyFloatList;
+import org.apache.uima.jcas.cas.NonEmptyIntegerList;
+import org.apache.uima.jcas.cas.NonEmptyStringList;
+import org.apache.uima.jcas.cas.ShortArray;
+import org.apache.uima.jcas.cas.Sofa;
+import org.apache.uima.jcas.cas.StringArray;
+import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.json.impl.JsonContentHandlerJacksonWrapper;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.ErrorHandler;
@@ -99,8 +120,6 @@ import com.fasterxml.jackson.core.io.Ser
  */
 public class JsonCasSerializer {
 
-  private static final Integer[] EMPTY_INTEGER_ARRAY = new Integer[0];
-
   private static final SerializedString CONTEXT_NAME = new 
SerializedString("_context");
  
   private static final SerializedString TYPE_SYSTEM_NAME = new 
SerializedString("_type_system");
@@ -454,16 +473,14 @@ public class JsonCasSerializer {
 private final JsonContentHandlerJacksonWrapper jch;
 
 private final JsonGenerator jg;
-
-private final String typeSystemReference;
-   
+   
 private final Map serializedStrings = new 
HashMap();
 
 private final Map usedTypeName2XmlElementName;
 
 private final MapType2Subtypes mapType2Subtypes = new MapType2Subtypes();
 
-private final IntVector parentTypesWithNoInstances = new IntVector();
+private final List parentTypesWithNoInstances = new 
ArrayList<>();

 private int lastEncodedTypeCode;
 
@@ -473,8 +490,6 @@ public class JsonCasSerializer {
 
 private final boolean isWithContext;
 
-private final boolean isWithExpandedTypeNames;
-
 private final boolean isWithSubtypes;
 
 private boolean indexId;  // true causes fs to be listed as "id" : { ...}, 
false as "type" : [ {...}
@@ -489,9 +504,7 @@ p

svn commit: r1743748 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test: AllTypes.java RefTypes.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:14:34 2016
New Revision: 1743748

URL: http://svn.apache.org/viewvc?rev=1743748&view=rev
Log:
[UIMA-4666] new jcasgend versions

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/RefTypes.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java?rev=1743748&r1=1743747&r2=1743748&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes.java
 Fri May 13 20:14:34 2016
@@ -1,11 +1,16 @@
 
 
-/* First created by JCasGen Sat Nov 01 07:15:36 EDT 2014 */
+   
+/* Apache UIMA v3 - First created by JCasGen Tue Mar 08 10:58:32 EST 2016 */
+
 package org.apache.uima.test;
 
+import org.apache.uima.cas.impl.CASImpl;
+import org.apache.uima.cas.impl.TypeImpl;
+import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.jcas.JCas; 
 import org.apache.uima.jcas.JCasRegistry;
-import org.apache.uima.jcas.cas.TOP_Type;
+
 
 import org.apache.uima.jcas.cas.FSList;
 import org.apache.uima.jcas.cas.FSArray;
@@ -19,8 +24,8 @@ import org.apache.uima.jcas.cas.BooleanA
 
 
 /** 
- * Updated by JCasGen Sat Nov 01 07:15:36 EDT 2014
- * XML source: 
C:/au/svnCheckouts/trunk/uimaj/uimaj-json/src/test/resources/CasSerialization/desc/allTypes.xml
+ * Updated by JCasGen Tue Mar 08 10:58:32 EST 2016
+ * XML source: 
C:/au/svnCheckouts/branches/uimaj/experiment-v3-jcas/uimaj-json/src/test/resources/CasSerialization/desc/allTypes.xml
  * @generated */
 public class AllTypes extends Annotation {
   /** @generated
@@ -39,17 +44,49 @@ public class AllTypes extends Annotation
   @Override
   public  int getTypeIndexID() {return typeIndexID;}
  
+ 
+  /* ***
+   *   Feature Offsets *
+   * ***/ 
+   
+  /* Feature Adjusted Offsets */
+  public final static int _FI_aBoolean = 
TypeSystemImpl.getAdjustedFeatureOffset("aBoolean");
+  public final static int _FI_aByte = 
TypeSystemImpl.getAdjustedFeatureOffset("aByte");
+  public final static int _FI_aShort = 
TypeSystemImpl.getAdjustedFeatureOffset("aShort");
+  public final static int _FI_aInteger = 
TypeSystemImpl.getAdjustedFeatureOffset("aInteger");
+  public final static int _FI_aLong = 
TypeSystemImpl.getAdjustedFeatureOffset("aLong");
+  public final static int _FI_aFloat = 
TypeSystemImpl.getAdjustedFeatureOffset("aFloat");
+  public final static int _FI_aDouble = 
TypeSystemImpl.getAdjustedFeatureOffset("aDouble");
+  public final static int _FI_aString = 
TypeSystemImpl.getAdjustedFeatureOffset("aString");
+  public final static int _FI_aFS = 
TypeSystemImpl.getAdjustedFeatureOffset("aFS");
+  public final static int _FI_aArrayBoolean = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayBoolean");
+  public final static int _FI_aArrayMrBoolean = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayMrBoolean");
+  public final static int _FI_aArrayMrByte = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayMrByte");
+  public final static int _FI_aArrayByte = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayByte");
+  public final static int _FI_aArrayShort = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayShort");
+  public final static int _FI_aArrayMrShort = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayMrShort");
+  public final static int _FI_aArrayString = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayString");
+  public final static int _FI_aArrayMrString = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayMrString");
+  public final static int _FI_aListInteger = 
TypeSystemImpl.getAdjustedFeatureOffset("aListInteger");
+  public final static int _FI_aListMrInteger = 
TypeSystemImpl.getAdjustedFeatureOffset("aListMrInteger");
+  public final static int _FI_aListString = 
TypeSystemImpl.getAdjustedFeatureOffset("aListString");
+  public final static int _FI_aListMrString = 
TypeSystemImpl.getAdjustedFeatureOffset("aListMrString");
+  public final static int _FI_aListFs = 
TypeSystemImpl.getAdjustedFeatureOffset("aListFs");
+  public final static int _FI_aListMrFs = 
TypeSystemImpl.getAdjustedFeatureOffset("aListMrFs");
+  public final static int _FI_aArrayFS = 
TypeSystemImpl.getAdjustedFeatureOffset("aArrayFS");
+
+   
   /** Never called.  Disable default constructor
 

svn commit: r1743749 - in /uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test: AllTypes_Type.java RefTypes_Type.java

2016-05-13 Thread schor
Author: schor
Date: Fri May 13 20:14:58 2016
New Revision: 1743749

URL: http://svn.apache.org/viewvc?rev=1743749&view=rev
Log:
[UIMA-4666] new jcasgend versions

Removed:

uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/AllTypes_Type.java

uima/uimaj/branches/experiment-v3-jcas/uimaj-json/src/test/java/org/apache/uima/test/RefTypes_Type.java



svn commit: r1744753 - /uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml

2016-05-20 Thread schor
Author: schor
Date: Fri May 20 15:14:26 2016
New Revision: 1744753

URL: http://svn.apache.org/viewvc?rev=1744753&view=rev
Log:
no Jira - add table consolidating useful comparative information about the 
alternative CAS Serialization capabilities

Modified:

uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml

Modified: 
uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml?rev=1744753&r1=1744752&r2=1744753&view=diff
==
--- 
uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
 (original)
+++ 
uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
 Fri May 20 15:14:26 2016
@@ -485,17 +485,21 @@ ae.destroy();
   Saving CASes to file systems or general Streams
   
   The UIMA framework provides multiple APIs to save and restore the 
contents of a CAS to streams. 
+  Two common uses of this are to save CASes to the file system, and to 
send CASes to other processes, running
+  on remote systems.
+  
+  
 The CASes can be serialized in multiple formats:
 
   
 Binary formats:
   
 
-  plain binary:  This is used to communicate with remote 
services, and also for interfacing with
+  plain binary: This is used to communicate with remote 
services, and also for interfacing with
   annotators written in C/C++ or related languages via the JNI 
Java interface, from Java
 
 
-  Two forms of compressed binary.  The recommend one is 
form 6, which also allows
+  Compressed binary: There are two forms of compressed 
binary.  The recommend one is form 6, which also allows
   type filtering. See .
 
   
@@ -515,6 +519,141 @@ ae.destroy();
 
   
   
+  Each of these serializations has different capabilities, 
summarized in the table below.
+   
+  Serialization Capabilities
+  
+
+
+
+
+
+
+
+
+  
+
+XCAS
+XMI
+JSON
+Binary
+Cmpr 4
+Cmrp 6
+  
+
+
+  
+Output
+Output Stream
+Output Stream
+Output Stream, File, Writer
+Output Stream
+Output Stream, Data Output Stream, File
+Output Stream, Data Output Stream, File
+  
+  
+Lists/Arrays inline formatting?
+-
+Yes
+Yes
+-
+-
+-
+  
+  
+Formatted?
+-
+Yes
+Yes
+-
+-
+-
+  
+  
+Type Filtering?
+-
+Yes
+Yes
+-
+-
+Yes
+  
+  
+Delta Cas?
+-
+Yes
+-
+Yes
+Yes
+Yes
+  
+  
+OOTS?
+Yes
+Yes
+-
+-
+-
+-
+  
+  
+Only send indexed + reachable FSs?
+Yes
+Yes
+Yes
+send all
+send all
+Yes
+  
+  
+NameSpace/Schemas?
+-
+Yes
+-
+-
+-
+-
+  
+
+  
+  
+
+  
+  
+  In the above table, Cmpr 4 and Cmpr 6 refer to Compressed forms of 
the serialization.
+  
+  For the XMI and JSON formats, lists and arrays can sometimes be 
formatted "inline".
+  In this representation, the elements are formatted directly as the value 
of a particular
+  feature.  This is only done if the arrays and lists are not 
multiply-referenced.
+  
+  Type Filtering support enables only a subset of the types and/or 
features to be
+  serialized. An additional type system object is used to specify the 
types to be included
+  in the serialization.  This can be useful, fo

svn commit: r1744755 - in /uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides: ./ src/docbook/tug.application.xml

2016-05-20 Thread schor
Author: schor
Date: Fri May 20 15:20:40 2016
New Revision: 1744755

URL: http://svn.apache.org/viewvc?rev=1744755&view=rev
Log:
no Jira - catchup with trunk, get new table of cas serialization methods

Modified:

uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/ 
  (props changed)

uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml

Propchange: 
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/
--
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri May 20 15:20:40 2016
@@ -1,4 +1,4 @@
 
/uima/uimaj/branches/depend-on-july-9-build-tools/uima-docbook-tutorials-and-users-guides:963167-964468
 
/uima/uimaj/branches/depend-on-parent-pom-4/uima-docbook-tutorials-and-users-guides:961329-961745
 
/uima/uimaj/branches/filteredCompress-uima-2498/uima-docbook-tutorials-and-users-guides:1436573-1462257
-/uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides:1690273-1693269
+/uima/uimaj/trunk/uima-docbook-tutorials-and-users-guides:1690273-1693269,1744753-1744754

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml?rev=1744755&r1=1744754&r2=1744755&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uima-docbook-tutorials-and-users-guides/src/docbook/tug.application.xml
 Fri May 20 15:20:40 2016
@@ -485,17 +485,21 @@ ae.destroy();
   Saving CASes to file systems or general Streams
   
   The UIMA framework provides multiple APIs to save and restore the 
contents of a CAS to streams. 
+  Two common uses of this are to save CASes to the file system, and to 
send CASes to other processes, running
+  on remote systems.
+  
+  
 The CASes can be serialized in multiple formats:
 
   
 Binary formats:
   
 
-  plain binary:  This is used to communicate with remote 
services, and also for interfacing with
+  plain binary: This is used to communicate with remote 
services, and also for interfacing with
   annotators written in C/C++ or related languages via the JNI 
Java interface, from Java
 
 
-  Two forms of compressed binary.  The recommend one is 
form 6, which also allows
+  Compressed binary: There are two forms of compressed 
binary.  The recommend one is form 6, which also allows
   type filtering. See .
 
   
@@ -515,6 +519,141 @@ ae.destroy();
 
   
   
+  Each of these serializations has different capabilities, 
summarized in the table below.
+   
+  Serialization Capabilities
+  
+
+
+
+
+
+
+
+
+  
+
+XCAS
+XMI
+JSON
+Binary
+Cmpr 4
+Cmrp 6
+  
+
+
+  
+Output
+Output Stream
+Output Stream
+Output Stream, File, Writer
+Output Stream
+Output Stream, Data Output Stream, File
+Output Stream, Data Output Stream, File
+  
+  
+Lists/Arrays inline formatting?
+-
+Yes
+Yes
+-
+-
+-
+  
+  
+Formatted?
+-
+Yes
+Yes
+-
+-
+-
+  
+  
+Type Filtering?
+-
+Yes
+Yes
+-
+-
+Yes
+  
+  
+Delta Cas?
+-
+Yes
+-
+Yes
+Yes
+Yes
+  
+  
+OOTS?
+Yes
+Yes
+-
+-
+-
+-
+  
+  
+Only send indexed + reachable FSs?
+Yes
+Yes
+Yes
+send all
+send all
+   

svn commit: r1745371 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

2016-05-24 Thread schor
Author: schor
Date: Tue May 24 15:24:49 2016
New Revision: 1745371

URL: http://svn.apache.org/viewvc?rev=1745371&view=rev
Log:
[UIMA-4670] add new exception messages

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1745371&r1=1745370&r2=1745371&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
 Tue May 24 15:24:49 2016
@@ -573,6 +573,7 @@ ANNOTATION_IN_WRONG_INDEX = Error - the
 TYPE_NOT_IN_INDEX = Error accessing index "{0}" for type "{1}".  Index "{0}" 
is over type "{2}", which is not a supertype of "{1}".
 DISALLOW_CREATE_ANNOTATION_IN_BASE_CAS = The type "{0}", a subtype of 
AnnotationBase, can''t be created in the Base CAS.
 CANNOT_CLONE_SOFA = SofaFS may not be cloned.
+CAS_MISMATCH = Mismatched CAS "{0}".
 DELTA_CAS_PREEXISTING_FS_DISALLOWED = "Preexisting FS encountered but not 
allowed. "{0}"
 INVALID_MARKER = Marker is invalid.
 MULTIPLE_CREATE_MARKER = CreateMarker called multiple times for one CAS.  This 
implementation only supports one call.
@@ -590,6 +591,9 @@ CAS_MISSING_FS = The CAS doesn''t have a
 INVALID_FS_ID = The Feature Structure ID {0} is invalid.
 TYPESYSTEMS_NOT_COMMITTED = Type Systems must be committed before calling this 
method.
 ADD_ARRAY_TYPE_AFTER_TS_COMMITTED = Can''t add an array type "{0}" to the type 
system after the type system has been committed.
+FS_NOT_MEMBER_OF_CAS = Feature Structure {0} belongs to CAS {1}, may not be 
set as the value of an array or list element in a different CAS {2}.
+ILLEGAL_STATE_DELTA_SERIALIZE_WITHOUT_PREVIOUS_DESERIALIZE = Illegal State - 
cannot do delta serialization ({0}) of a Cas {1} without a previous deserialize.
+ILLEGAL_ADD_TO_INDEX_IN_BASE_CAS = Illegal operation - cannot add Feature 
Structure {0} to base CAS {1}.
 
 #
 # Serialization / deserialization runtime exceptions




svn commit: r1745372 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

2016-05-24 Thread schor
Author: schor
Date: Tue May 24 15:25:50 2016
New Revision: 1745372

URL: http://svn.apache.org/viewvc?rev=1745372&view=rev
Log:
[UIMA-4670] add new exception messages

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java?rev=1745372&r1=1745371&r2=1745372&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/CASRuntimeException.java
 Tue May 24 15:25:50 2016
@@ -266,6 +266,15 @@ public class CASRuntimeException extends
   /** While deserializing, no type found for type code {0}. */
   public static final String deserialized_type_not_found = 
"deserialized_type_not_found";
   
+  /** Feature Structure {0} belongs to CAS {1}, may not be set as the value of 
an array or list element in a different CAS {2}.*/
+  public static final String FS_NOT_MEMBER_OF_CAS = "FS_NOT_MEMBER_OF_CAS";
+  
+  /** Illegal State - cannot do delta serialization ({0}) of a Cas {1} without 
a previous deserialize.*/
+  public static final String 
ILLEGAL_STATE_DELTA_SERIALIZE_WITHOUT_PREVIOUS_DESERIALIZE = 
"ILLEGAL_STATE_DELTA_SERIALIZE_WITHOUT_PREVIOUS_DESERIALIZE";
+  
+  /** Illegal operation - cannot add Feature Structure {0} to base Cas {1}.*/
+  public static final String ILLEGAL_ADD_TO_INDEX_IN_BASE_CAS = 
"ILLEGAL_ADD_TO_INDEX_IN_BASE_CAS";
+  
   /**
* The constructors are organized
* 




svn commit: r1745488 - /uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java

2016-05-25 Thread schor
Author: schor
Date: Wed May 25 13:57:13 2016
New Revision: 1745488

URL: http://svn.apache.org/viewvc?rev=1745488&view=rev
Log:
[UIMA-4674] allow updating of 2nd value of Pair (change from "final")

Modified:

uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java

Modified: 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java?rev=1745488&r1=1745487&r2=1745488&view=diff
==
--- 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java
 (original)
+++ 
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/internal/util/Pair.java
 Wed May 25 13:57:13 2016
@@ -3,7 +3,8 @@ package org.apache.uima.internal.util;
 public class Pair {
 
   public final T t;
-  public final U u;
+  /** updatable but don't update if used as key in hashtable */
+  public U u;  
 
   public Pair(T t, U u) {
 this.t = t;




  1   2   3   4   5   6   7   8   9   10   >