You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2017/09/18 17:26:30 UTC

svn commit: r1808751 - in /uima/uv3/uimaj-v3/trunk/uimaj-core/src: main/java/org/apache/uima/cas/impl/ main/java/org/apache/uima/jcas/cas/ main/java/org/apache/uima/jcas/tcas/ main/resources/org/apache/uima/ test/java/org/apache/lang/

Author: schor
Date: Mon Sep 18 17:26:29 2017
New Revision: 1808751

URL: http://svn.apache.org/viewvc?rev=1808751&view=rev
Log:
[UIMA-5573] switch to lazy JCas init for built-in JCas classes that have features.  Insure type system commit does the JCas class loading in all cases.

Modified:
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSHashSet.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
    uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes.java Mon Sep 18 17:26:29 2017
@@ -572,10 +572,11 @@ public class BinaryCasSerDes {
             .deserialize(baseCas, dis, delta, h);
           return h.typeSystemIndexDefIncluded ? SerialFormat.COMPRESSED_TSI : SerialFormat.COMPRESSED;
         } else {
+          // is form 6
           CASMgrSerializer cms = (embeddedCasMgrSerializer != null) ? embeddedCasMgrSerializer : casMgrSerializer; 
           TypeSystemImpl tsRead = (cms != null) ? cms.getTypeSystem() : null;
           if (null != tsRead) {
-            tsRead = tsRead.commit();  // no generators set up
+            tsRead = tsRead.commit();  // jcas initialized, but no generators for this cas set up
           }
             
           TypeSystemImpl ts_for_decoding =

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/cas/impl/TypeSystemImpl.java Mon Sep 18 17:26:29 2017
@@ -1365,6 +1365,7 @@ public class TypeSystemImpl implements T
         committedTypeSystems.put(this, new WeakReference<>(this));
       }
 
+      FSClassRegistry.loadAtTypeSystemCommitTime(this, true, cl);
       return this;
     } // of sync block 
   }
@@ -2621,7 +2622,7 @@ public class TypeSystemImpl implements T
       return g;
     }
   }
-  
+    
   /**
    * Creates and returns a new MutableCallSite, 
    * recording it in list of all callsites for this type, in a map by typename

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java Mon Sep 18 17:26:29 2017
@@ -19,6 +19,9 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
+
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.cas.Feature;
@@ -68,7 +71,9 @@ public class AnnotationBase extends TOP
   // private final static int _FI_sofa = JCasRegistry.registerFeature();  // only for journal-able or corruptable feature slots
   
   /* local data */
-  public final static int _FI_sofa = TypeSystemImpl.getAdjustedFeatureOffset("sofa");
+//  public final static int _FI_sofa = TypeSystemImpl.getAdjustedFeatureOffset("sofa");
+  private final static CallSite _FC_sofa = TypeSystemImpl.createCallSite(AnnotationBase.class, "sofa");
+  private final static MethodHandle _FH_sofa = _FC_sofa.dynamicInvoker();
   
 //  private final Sofa _F_sofa;
   
@@ -88,7 +93,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
-    _setRefValueCommon(_FI_sofa, _casView.getSofaRef());
+    _setRefValueCommon(wrapGetIntCatchException(_FH_sofa), _casView.getSofaRef());
   }
 
   /**
@@ -104,7 +109,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
-    _setRefValueCommon(_FI_sofa, _casView.getSofaRef());
+    _setRefValueCommon(wrapGetIntCatchException(_FH_sofa), _casView.getSofaRef());
   }
 
   // *------------------*
@@ -113,7 +118,7 @@ public class AnnotationBase extends TOP
   /*
    * getter for sofa - gets Sofaref for annotation
    */
-  public Sofa getSofa() { return (Sofa) _getFeatureValueNc(_FI_sofa); }
+  public Sofa getSofa() { return (Sofa) _getFeatureValueNc(wrapGetIntCatchException(_FH_sofa)); }
   
   // There is no setter for this
   //   The value is set and is fixed when this is created
@@ -129,7 +134,7 @@ public class AnnotationBase extends TOP
     if (fi.getCode() == TypeSystemConstants.annotBaseSofaFeatCode) {
       // trying to set the sofa - don't do this, but check if the value
       // is OK (note: may break backwards compatibility)  
-      if (v != _getFeatureValueNc(AnnotationBase._FI_sofa)) {
+      if (v != _getFeatureValueNc(wrapGetIntCatchException(_FH_sofa))) {
         throw new CASRuntimeException(CASRuntimeException.ILLEGAL_SOFAREF_MODIFICATION);
       }
     }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSArrayList.java Mon Sep 18 17:26:29 2017
@@ -21,6 +21,8 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.AbstractList;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -125,7 +127,9 @@ public class FSArrayList <T extends TOP>
 
 
   /* Feature Adjusted Offsets */
-  public final static int _FI_fsArray = TypeSystemImpl.getAdjustedFeatureOffset("fsArray");
+//  public final static int _FI_fsArray = TypeSystemImpl.getAdjustedFeatureOffset("fsArray");
+  public final static CallSite _FC_fsArray = TypeSystemImpl.createCallSite(FSArrayList.class, "fsArray");
+  public final static MethodHandle _FH_fsArray = _FC_fsArray.dynamicInvoker();
 
    
   /** Never called.  Disable default constructor
@@ -184,14 +188,14 @@ public class FSArrayList <T extends TOP>
    * @generated
    * @return value of the feature 
    */
-  private FSArray getFsArray() { return (FSArray)(_getFeatureValueNc(_FI_fsArray));}
+  private FSArray getFsArray() { return (FSArray)(_getFeatureValueNc(wrapGetIntCatchException(_FH_fsArray)));}
     
   /** setter for fsArray - sets internal use - holds the contents 
    * @generated
    * @param v value to set into the feature 
    */
   private void setFsArray(FSArray v) {
-    _setFeatureValueNcWj(_FI_fsArray, v);
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_fsArray), v);
   }    
     
   /**

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSHashSet.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSHashSet.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSHashSet.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/FSHashSet.java Mon Sep 18 17:26:29 2017
@@ -21,8 +21,9 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.lang.reflect.Array;
-import java.util.AbstractCollection;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -40,9 +41,6 @@ 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.FSArray;
-import org.apache.uima.jcas.cas.SelectViaCopyToArray;
-import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.util.impl.Constants;
 
 
@@ -95,7 +93,9 @@ public class FSHashSet <T extends TOP> e
 
 
   /* Feature Adjusted Offsets */
-  public final static int _FI_fsArray = TypeSystemImpl.getAdjustedFeatureOffset("fsArray");
+//  public final static int _FI_fsArray = TypeSystemImpl.getAdjustedFeatureOffset("fsArray");
+  public final static CallSite _FC_fsArray = TypeSystemImpl.createCallSite(FSHashSet.class, "fsArray");
+  public final static MethodHandle _FH_fsArray = _FC_fsArray.dynamicInvoker();
 
    
   /** Never called.  Disable default constructor
@@ -153,14 +153,14 @@ public class FSHashSet <T extends TOP> e
    * @generated
    * @return value of the feature 
    */
-  private FSArray getFsArray() { return (FSArray)(_getFeatureValueNc(_FI_fsArray));}
+  private FSArray getFsArray() { return (FSArray)(_getFeatureValueNc(wrapGetIntCatchException(_FH_fsArray)));}
     
   /** setter for fsArray - sets internal use - holds the set of Feature Structures 
    * @generated
    * @param v value to set into the feature 
    */
   private void setFsArray(FSArray v) {
-    _setFeatureValueNcWj(_FI_fsArray, v);
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_fsArray), v);
   }    
     
   /* (non-Javadoc)

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/IntegerArrayList.java Mon Sep 18 17:26:29 2017
@@ -21,12 +21,13 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.Arrays;
+import java.util.PrimitiveIterator.OfInt;
 import java.util.RandomAccess;
 import java.util.Spliterator;
-import java.util.function.Consumer;
 import java.util.function.IntConsumer;
-import java.util.PrimitiveIterator.OfInt;
 import java.util.stream.IntStream;
 import java.util.stream.StreamSupport;
 
@@ -40,14 +41,10 @@ import org.apache.uima.cas.impl.TypeImpl
 import org.apache.uima.cas.impl.TypeSystemImpl;
 import org.apache.uima.internal.util.IntListIterator;
 import org.apache.uima.internal.util.IntVector;
-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;
-import org.apache.uima.jcas.cas.IntegerArray;
-
-
 /** an expandable array of ints
  * Updated by JCasGen Fri Jan 20 11:55:59 EST 2017
  * XML source: C:/au/svnCheckouts/branches/uimaj/v3-alpha/uimaj-types/src/main/descriptors/java_object_type_descriptors.xml
@@ -120,7 +117,9 @@ public class IntegerArrayList extends TO
 
 
   /* Feature Adjusted Offsets */
-  public final static int _FI_intArray = TypeSystemImpl.getAdjustedFeatureOffset("intArray");
+//  public final static int _FI_intArray = TypeSystemImpl.getAdjustedFeatureOffset("intArray");
+  private final static CallSite _FC_intArray = TypeSystemImpl.createCallSite(IntegerArrayList.class, "intArray");
+  private final static MethodHandle _FH_intArray = _FC_intArray.dynamicInvoker();
 
    
   /** Never called.  Disable default constructor
@@ -175,14 +174,14 @@ public class IntegerArrayList extends TO
    * @generated
    * @return value of the feature 
    */
-  private IntegerArray getIntArray() { return (IntegerArray)(_getFeatureValueNc(_FI_intArray));}
+  private IntegerArray getIntArray() { return (IntegerArray)(_getFeatureValueNc(wrapGetIntCatchException(_FH_intArray)));}
     
   /** setter for intArray - sets internal use - holds the ints 
    * @generated
    * @param v value to set into the feature 
    */
   private void setIntArray(IntegerArray v) {
-    _setFeatureValueNcWj(_FI_intArray, v);
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_intArray), v);
   }    
     
   private void maybeStartUsingIntegerArrayList() {

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFSList.java Mon Sep 18 17:26:29 2017
@@ -19,6 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -44,9 +46,17 @@ public class NonEmptyFSList extends FSLi
     return typeIndexID;
   }
 
-  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
-  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
-
+  public static final String _FeatName_head = "head";
+  public static final String _FeatName_tail = "tail";
+  
+//  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
+//  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  private final static CallSite _FC_head = TypeSystemImpl.createCallSite(NonEmptyFSList.class, "head");
+  private final static MethodHandle _FH_head = _FC_head.dynamicInvoker();
+  private final static CallSite _FC_tail = TypeSystemImpl.createCallSite(NonEmptyFSList.class, "tail");
+  private final static MethodHandle _FH_tail = _FC_tail.dynamicInvoker();
+  
+  
 //  /* local data */
 //  private TOP _F_head;
 //  private FSList _F_tail;
@@ -94,7 +104,7 @@ public class NonEmptyFSList extends FSLi
   // *------------------*
   // * Feature: head
   /* getter for head * */
-  public TOP getHead() { return _getFeatureValueNc(_FI_head); }
+  public TOP getHead() { return _getFeatureValueNc(wrapGetIntCatchException(_FH_head)); }
 
   /* setter for head * */
   public void setHead(FeatureStructure v) {
@@ -103,14 +113,14 @@ public class NonEmptyFSList extends FSLi
       /** 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}.*/
       throw new CASRuntimeException(CASRuntimeException.FS_NOT_MEMBER_OF_CAS, vt, vt._casView, _casView);
     }
-    _setFeatureValueNcWj(_FI_head, v); }
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_head), v); }
 
 //  public void _setHeadNcNj(TOP v) { _F_head = v; }
   
   // *------------------*
   // * Feature: tail
   /* getter for tail * */
-  public FSList getTail() { return (FSList) _getFeatureValueNc(_FI_tail); }
+  public FSList getTail() { return (FSList) _getFeatureValueNc(wrapGetIntCatchException(_FH_tail)); }
 
   /* setter for tail * */
   public void setTail(FSList v) {
@@ -118,7 +128,7 @@ public class NonEmptyFSList extends FSLi
       /** 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}.*/
       throw new CASRuntimeException(CASRuntimeException.FS_NOT_MEMBER_OF_CAS, v, v._casView, _casView);
     }
-    _setFeatureValueNcWj(_FI_tail, v); }
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_tail), v); }
    
   @Override
   public void setTail(CommonList v) {

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyFloatList.java Mon Sep 18 17:26:29 2017
@@ -19,6 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -43,8 +45,15 @@ public class NonEmptyFloatList extends F
     return typeIndexID;
   }
 
-  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
-  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  public static final String _FeatName_head = "head";
+  public static final String _FeatName_tail = "tail";
+  
+//  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
+//  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  private final static CallSite _FC_head = TypeSystemImpl.createCallSite(NonEmptyFloatList.class, "head");
+  private final static MethodHandle _FH_head = _FC_head.dynamicInvoker();
+  private final static CallSite _FC_tail = TypeSystemImpl.createCallSite(NonEmptyFloatList.class, "tail");
+  private final static MethodHandle _FH_tail = _FC_tail.dynamicInvoker();
   
   /* local data */
 //  private float _F_head;
@@ -93,19 +102,19 @@ public class NonEmptyFloatList extends F
   // *------------------*
   // * Feature: head
   /* getter for head * */
-  public float getHead() { return _getFloatValueNc(_FI_head); }
+  public float getHead() { return _getFloatValueNc(wrapGetIntCatchException(_FH_head)); }
 
   /* setter for head * */
   public void setHead(float v) {
-    this._setFloatValueNfc(_FI_head, v);
+    this._setFloatValueNfc(wrapGetIntCatchException(_FH_head), v);
   }
 
-//  public void _setHeadNcNj(float v) { setFloatValueNcNj(_getFeat(_FI_head), v); }
+//  public void _setHeadNcNj(float v) { setFloatValueNcNj(_getFeat(wrapGetIntCatchException(_FH_head)), v); }
   
   // *------------------*
   // * Feature: tail
   /* getter for tail * */
-  public FloatList getTail() { return (FloatList) _getFeatureValueNc(_FI_tail); }
+  public FloatList getTail() { return (FloatList) _getFeatureValueNc(wrapGetIntCatchException(_FH_tail)); }
 
   /* setter for tail * */
   public void setTail(FloatList v) {
@@ -113,7 +122,7 @@ public class NonEmptyFloatList extends F
       /** 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}.*/
       throw new CASRuntimeException(CASRuntimeException.FS_NOT_MEMBER_OF_CAS, v, v._casView, _casView);
     }
-    _setFeatureValueNcWj(_FI_tail, v); 
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_tail), v); 
   }
 
   public void setTail(CommonList v) { setTail((FloatList) v); }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyIntegerList.java Mon Sep 18 17:26:29 2017
@@ -19,6 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NoSuchElementException;
@@ -46,8 +48,16 @@ public class NonEmptyIntegerList extends
     return typeIndexID;
   }
   
-  public final static int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
-  public final static int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  public static final String _FeatName_head = "head";
+  public static final String _FeatName_tail = "tail";
+
+//  public final static int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
+//  public final static int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  private final static CallSite _FC_head = TypeSystemImpl.createCallSite(NonEmptyIntegerList.class, "head");
+  private final static MethodHandle _FH_head = _FC_head.dynamicInvoker();
+  private final static CallSite _FC_tail = TypeSystemImpl.createCallSite(NonEmptyIntegerList.class, "tail");
+  private final static MethodHandle _FH_tail = _FC_tail.dynamicInvoker();
+
 
 //  /* local data */
 //  private int _F_head;
@@ -96,19 +106,19 @@ public class NonEmptyIntegerList extends
   // *------------------*
   // * Feature: head
   /* getter for head * */
-  public int getHead() { return _getIntValueNc(_FI_head); }
+  public int getHead() { return _getIntValueNc(wrapGetIntCatchException(_FH_head)); }
 
   /* setter for head * */
   public void setHead(int v) {
-    _setIntValueNfc(_FI_head, v);
+    _setIntValueNfc(wrapGetIntCatchException(_FH_head), v);
   }
 
-//  public void _setHeadNcNj(int v) { _FI_head = v;}
+//  public void _setHeadNcNj(int v) { wrapGetIntCatchException(_FH_head) = v;}
   
   // *------------------*
   // * Feature: tail
   /* getter for tail * */
-  public IntegerList getTail() { return (IntegerList) _getFeatureValueNc(_FI_tail); }
+  public IntegerList getTail() { return (IntegerList) _getFeatureValueNc(wrapGetIntCatchException(_FH_tail)); }
 
   /* setter for tail * */
   public void setTail(IntegerList v) {
@@ -116,7 +126,7 @@ public class NonEmptyIntegerList extends
       /** 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}.*/
       throw new CASRuntimeException(CASRuntimeException.FS_NOT_MEMBER_OF_CAS, v, v._casView, _casView);
     }
-  _setFeatureValueNcWj(_FI_tail, v); 
+  _setFeatureValueNcWj(wrapGetIntCatchException(_FH_tail), v); 
   }
   
   @Override

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/NonEmptyStringList.java Mon Sep 18 17:26:29 2017
@@ -19,6 +19,8 @@
 
 package org.apache.uima.jcas.cas;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 
@@ -43,8 +45,17 @@ public class NonEmptyStringList extends
     return typeIndexID;
   }
 
-  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
-  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  public static final String _FeatName_head = "head";
+  public static final String _FeatName_tail = "tail";
+
+//  public static final int _FI_head = TypeSystemImpl.getAdjustedFeatureOffset("head");
+//  public static final int _FI_tail = TypeSystemImpl.getAdjustedFeatureOffset("tail");
+  private final static CallSite _FC_head = TypeSystemImpl.createCallSite(NonEmptyStringList.class, "head");
+  private final static MethodHandle _FH_head = _FC_head.dynamicInvoker();
+  private final static CallSite _FC_tail = TypeSystemImpl.createCallSite(NonEmptyStringList.class, "tail");
+  private final static MethodHandle _FH_tail = _FC_tail.dynamicInvoker();
+
+  
   
 //  /* local data */
 //  private String _F_head;
@@ -93,19 +104,19 @@ public class NonEmptyStringList extends
 // *------------------*
   // * Feature: head
   /* getter for head * */
-  public String getHead() { return _getStringValueNc(_FI_head); }
+  public String getHead() { return _getStringValueNc(wrapGetIntCatchException(_FH_head)); }
 
   /* setter for head * */
   public void setHead(String v) {
-    _setStringValueNfc(_FI_head, v);
+    _setStringValueNfc(wrapGetIntCatchException(_FH_head), v);
   }
   
-//  public void _setHeadNcNj(String v) {_FI_head = v;};
+//  public void _setHeadNcNj(String v) {wrapGetIntCatchException(_FH_head) = v;};
 
   // *------------------*
   // * Feature: tail
   /* getter for tail * */
-  public StringList getTail() { return (StringList) _getFeatureValueNc(_FI_tail); }
+  public StringList getTail() { return (StringList) _getFeatureValueNc(wrapGetIntCatchException(_FH_tail)); }
 
   /* setter for tail * */
   public void setTail(StringList v) {
@@ -113,7 +124,7 @@ public class NonEmptyStringList extends
       /** 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}.*/
       throw new CASRuntimeException(CASRuntimeException.FS_NOT_MEMBER_OF_CAS, v, v._casView, _casView);
     }
-    _setFeatureValueNcWj(_FI_tail, v); 
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_tail), v); 
   }
   
   @Override
@@ -121,7 +132,7 @@ public class NonEmptyStringList extends
     setTail((StringList)v);
   }
   
-//  public void _setTailNcNj(StringList v) { _FI_tail = v; }
+//  public void _setTailNcNj(StringList v) { wrapGetIntCatchException(_FH_tail) = v; }
   
   /* (non-Javadoc)
    * @see org.apache.uima.jcas.cas.CommonList#get_headAsString()

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/Sofa.java Mon Sep 18 17:26:29 2017
@@ -20,6 +20,8 @@
 package org.apache.uima.jcas.cas;
 
 import java.io.InputStream;
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
 
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASRuntimeException;
@@ -52,12 +54,26 @@ public class Sofa extends TOP implements
   
   /* local data */
   // these static ints are for fast index corruption checking
-  public final static int _FI_sofaNum    = TypeSystemImpl.getAdjustedFeatureOffset("sofaNum");
-  public final static int _FI_sofaID     = TypeSystemImpl.getAdjustedFeatureOffset("sofaID");
-  public final static int _FI_mimeType   = TypeSystemImpl.getAdjustedFeatureOffset("mimeType");
-  public final static int _FI_sofaArray  = TypeSystemImpl.getAdjustedFeatureOffset("sofaArray");
-  public final static int _FI_sofaString = TypeSystemImpl.getAdjustedFeatureOffset("sofaString");
-  public final static int _FI_sofaURI    = TypeSystemImpl.getAdjustedFeatureOffset("sofaURI");
+//  public final static int _FI_sofaNum    = TypeSystemImpl.getAdjustedFeatureOffset("sofaNum");
+//  public final static int _FI_sofaID     = TypeSystemImpl.getAdjustedFeatureOffset("sofaID");
+//  public final static int _FI_mimeType   = TypeSystemImpl.getAdjustedFeatureOffset("mimeType");
+//  public final static int _FI_sofaArray  = TypeSystemImpl.getAdjustedFeatureOffset("sofaArray");
+//  public final static int _FI_sofaString = TypeSystemImpl.getAdjustedFeatureOffset("sofaString");
+//  public final static int _FI_sofaURI    = TypeSystemImpl.getAdjustedFeatureOffset("sofaURI");
+
+  private final static CallSite _FC_sofaNum = TypeSystemImpl.createCallSite(Sofa.class, "sofaNum");
+  private final static CallSite _FC_sofaID = TypeSystemImpl.createCallSite(Sofa.class, "sofaID");
+  private final static CallSite _FC_mimeType = TypeSystemImpl.createCallSite(Sofa.class, "mimeType");
+  private final static CallSite _FC_sofaArray = TypeSystemImpl.createCallSite(Sofa.class, "sofaArray");
+  private final static CallSite _FC_sofaString = TypeSystemImpl.createCallSite(Sofa.class, "sofaString");
+  private final static CallSite _FC_sofaURI = TypeSystemImpl.createCallSite(Sofa.class, "sofaURI");
+
+  private final static MethodHandle _FH_sofaNum = _FC_sofaNum.dynamicInvoker();
+  private final static MethodHandle _FH_sofaID = _FC_sofaID.dynamicInvoker();
+  private final static MethodHandle _FH_mimeType = _FC_mimeType.dynamicInvoker();
+  private final static MethodHandle _FH_sofaArray = _FC_sofaArray.dynamicInvoker();
+  private final static MethodHandle _FH_sofaString = _FC_sofaString.dynamicInvoker();
+  private final static MethodHandle _FH_sofaURI = _FC_sofaURI.dynamicInvoker();
   
 //  private final int _F_sofaNum;
 //  private final String _F_sofaID;  // view name or _InitialView
@@ -86,9 +102,9 @@ public class Sofa extends TOP implements
   
   public Sofa(TypeImpl t, CASImpl c, int sofaNum, String viewName, String mimeType) {
     super(t, c);
-    _setIntValueNcNj(_FI_sofaNum, sofaNum);
-    _setRefValueCommon(_FI_sofaID, viewName);
-    _setRefValueCommon(_FI_mimeType, mimeType);
+    _setIntValueNcNj(wrapGetIntCatchException(_FH_sofaNum), sofaNum);
+    _setRefValueCommon(wrapGetIntCatchException(_FH_sofaID), viewName);
+    _setRefValueCommon(wrapGetIntCatchException(_FH_mimeType), mimeType);
 //    _F_sofaNum = sofaNum;
 //    _F_sofaID = viewName;
 //    _F_mimeType = mimeType;
@@ -123,7 +139,7 @@ public class Sofa extends TOP implements
    * getter for sofaNum
    * @return the sofa number
    */
-	public int getSofaNum() { return _getIntValueNc(_FI_sofaNum); }
+	public int getSofaNum() { return _getIntValueNc(wrapGetIntCatchException(_FH_sofaNum)); }
 	
 	// *--------------*
 	// * Feature: sofaID
@@ -133,7 +149,7 @@ public class Sofa extends TOP implements
    * @return the sofaID, which is the same as the view name
    */
 	@Override
-  public String getSofaID() { return _getStringValueNc(_FI_sofaID); }
+  public String getSofaID() { return _getStringValueNc(wrapGetIntCatchException(_FH_sofaID)); }
 
 	// *--------------*
 	// * Feature: mimeType
@@ -142,7 +158,7 @@ public class Sofa extends TOP implements
    * getter for mimeType - gets
    * @return the mime type
    */
-	public String getMimeType() { return _getStringValueNc(_FI_mimeType); }
+	public String getMimeType() { return _getStringValueNc(wrapGetIntCatchException(_FH_mimeType)); }
 
 	/**
    * @see org.apache.uima.cas.SofaFS#setLocalSofaData(FeatureStructure) This method is duplicated in
@@ -152,7 +168,7 @@ public class Sofa extends TOP implements
   @Override
   public void setLocalSofaData(FeatureStructure aFS) {   
     if (isSofaDataSet()) { throwAlreadySet("setLocalSofaData()"); }
-    _setFeatureValueNcWj(_FI_sofaArray, aFS);
+    _setFeatureValueNcWj(wrapGetIntCatchException(_FH_sofaArray), aFS);
   }
 
 	public void setLocalSofaData(FeatureStructure aFS, String mimeType) {
@@ -167,7 +183,7 @@ public class Sofa extends TOP implements
   @Override
   public void setLocalSofaData(String aString) {
     if (isSofaDataSet()) { throwAlreadySet("setLocalSofaData()"); }
-    _setStringValueNcWj(_FI_sofaString, aString);
+    _setStringValueNcWj(wrapGetIntCatchException(_FH_sofaString), aString);
 
     // create or update the document annotation for this Sofa's view
     ((CASImpl)(_casView.getView(this))).updateDocumentAnnotation();
@@ -183,13 +199,13 @@ public class Sofa extends TOP implements
    * returns an UIMA Array whose data represents the sofa
    */
 	@Override
-  public FeatureStructure getLocalFSData() { return _getFeatureValueNc(_FI_sofaArray); }
+  public FeatureStructure getLocalFSData() { return _getFeatureValueNc(wrapGetIntCatchException(_FH_sofaArray)); }
 
 	/**
    * @see org.apache.uima.cas.SofaFS#getLocalStringData() 
    */
 	@Override
-  public String getLocalStringData() { return _getStringValueNc(_FI_sofaString); }
+  public String getLocalStringData() { return _getStringValueNc(wrapGetIntCatchException(_FH_sofaString)); }
 
 	/**
    * @see org.apache.uima.cas.SofaFS#setRemoteSofaURI(String) This method is duplicated in
@@ -198,7 +214,7 @@ public class Sofa extends TOP implements
   @Override
   public void setRemoteSofaURI(String aURI) {
     if (isSofaDataSet()) { throwAlreadySet("setRemoteSofaURI()"); }
-    _setStringValueNcWj(_FI_sofaURI, aURI);
+    _setStringValueNcWj(wrapGetIntCatchException(_FH_sofaURI), aURI);
   }
 	
 	public void setRemoteSofaURI(String aURI, String mimeType) {
@@ -213,14 +229,14 @@ public class Sofa extends TOP implements
 	}
 	
   @Override
-  public String getSofaMime() { return _getStringValueNc(_FI_mimeType); }
+  public String getSofaMime() { return _getStringValueNc(wrapGetIntCatchException(_FH_mimeType)); }
 
   @Override
-  public String getSofaURI() { return _getStringValueNc(_FI_sofaURI); }
+  public String getSofaURI() { return _getStringValueNc(wrapGetIntCatchException(_FH_sofaURI)); }
 
   // ** Note: this gets the feature named "sofaNum"
   @Override
-  public int getSofaRef() { return _getIntValueNc(_FI_sofaNum); }
+  public int getSofaRef() { return _getIntValueNc(wrapGetIntCatchException(_FH_sofaNum)); }
 
   @Override
   public InputStream getSofaDataStream() {
@@ -233,9 +249,9 @@ public class Sofa extends TOP implements
    *   - used in generic pretty printing routines
    * @return -
    */
-  public TOP getSofaArray() { return _getFeatureValueNc(_FI_sofaArray); }
+  public TOP getSofaArray() { return _getFeatureValueNc(wrapGetIntCatchException(_FH_sofaArray)); }
   
-  public String getSofaString() { return _getStringValueNc(_FI_sofaString); }
+  public String getSofaString() { return _getStringValueNc(wrapGetIntCatchException(_FH_sofaString)); }
     
 
 	// override setStringValue for SofaFS to prohibit setting in this manner!
@@ -259,5 +275,5 @@ public class Sofa extends TOP implements
 	  throw new CASRuntimeException(CASRuntimeException.SOFADATA_ALREADY_SET, msg);
 	}
 
-	public void setMimeType(String v) { _setStringValueNcWj(_FI_mimeType, v); }
+	public void setMimeType(String v) { _setStringValueNcWj(wrapGetIntCatchException(_FH_mimeType), v); }
 }

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/tcas/Annotation.java Mon Sep 18 17:26:29 2017
@@ -55,14 +55,16 @@ public class Annotation extends Annotati
   
   private final static CallSite _FC_begin = TypeSystemImpl.createCallSite(Annotation.class, "begin");
   private final static MethodHandle _FH_begin = _FC_begin.dynamicInvoker();
-  
+  private final static CallSite _FC_end = TypeSystemImpl.createCallSite(Annotation.class, "end");
+  private final static MethodHandle _FH_end = _FC_end.dynamicInvoker();
+
 //  static {
 //    _FC_begin.setTarget(MethodHandles.constant(int.class, TypeSystemImpl.getAdjustedFeatureOffset("begin")));
 //  }
   
   
-  private final static int _FI_begin = TypeSystemImpl.getAdjustedFeatureOffset("begin");
-  private final static int _FI_end   = TypeSystemImpl.getAdjustedFeatureOffset("end");
+//  private final static int _FI_begin = TypeSystemImpl.getAdjustedFeatureOffset("begin");
+//  private final static int _FI_end   = TypeSystemImpl.getAdjustedFeatureOffset("end");
   
 //  /* local data */
 //  private int _F_begin;
@@ -112,14 +114,14 @@ public class Annotation extends Annotati
    * getter for end - gets ending of span of annotation
    */
   public final int getEnd() { 
-    return this._getIntValueNc(_FI_end);
+    return this._getIntValueNc(wrapGetIntCatchException(_FH_end));
   }
 
   /*
    * setter for end - sets ending of span of annotation
    */
   public final void setEnd(int v) {
-    this._setIntValueNfc(_FI_end,  v);
+    this._setIntValueNfc(wrapGetIntCatchException(_FH_end),  v);
   }
   
   /**
@@ -131,7 +133,7 @@ public class Annotation extends Annotati
   public Annotation(JCas jcas, int begin, int end) {
     super(jcas); // forward to constructor
     this._setIntValueNcNj( wrapGetIntCatchException(_FH_begin), begin);
-    this._setIntValueNcNj(_FI_end, end);
+    this._setIntValueNcNj(wrapGetIntCatchException(_FH_end), end);
   }
 
   /**
@@ -163,10 +165,12 @@ public class Annotation extends Annotati
    * @return -
    */
   public final int compareAnnotation(Annotation other) {
-    int result = Integer.compare(_getIntValueNc( wrapGetIntCatchException(_FH_begin)), other._getIntValueNc( wrapGetIntCatchException(_FH_begin)));
+    final int b = wrapGetIntCatchException(_FH_begin);
+    int result = Integer.compare(_getIntValueNc(b), other._getIntValueNc(b));
     if (result != 0) return result;
 
-    result = Integer.compare(_getIntValueNc(_FI_end), other._getIntValueNc(_FI_end));
+    final int e = wrapGetIntCatchException(_FH_end);
+    result = Integer.compare(_getIntValueNc(e), other._getIntValueNc(e));
     return (result == 0) ? 0 : -result;  // reverse compare
   }
   

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/main/resources/org/apache/uima/UIMAException_Messages.properties Mon Sep 18 17:26:29 2017
@@ -529,7 +529,7 @@ JCAS_GETTER_SETTER_MISSING = Unable to f
 JCAS_FEATURE_WRONG_TYPE = The JCAS range type {2} for feature {1} of type {0} does not match the CAS range type {3} for the feature.
 TYPEORDER_UNKNOWN_TYPE = The type sort order cannot be built because type {0} is unknown.
 MUST_COMMIT_TYPE_SYSTEM = Type system has not been committed. The base index cannot be created.
-JCAS_NO_TYPE = Cannot do feature accessing for JCas class {0}, because it is not associated with a committed UIMA Type, either because the type doesn''t exist, or hasn''t been committed.
+JCAS_NO_TYPE = Cannot do feature accessing for a JCas class, because it is not associated with a committed UIMA Type, either because the type doesn''t exist, or hasn''t been committed.
 
 
 #------------------------------------------------------------------------

Modified: uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java
URL: http://svn.apache.org/viewvc/uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java?rev=1808751&r1=1808750&r2=1808751&view=diff
==============================================================================
--- uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java (original)
+++ uima/uv3/uimaj-v3/trunk/uimaj-core/src/test/java/org/apache/lang/LanguagePair.java Mon Sep 18 17:26:29 2017
@@ -5,6 +5,9 @@
 
 package org.apache.lang;
 
+import java.lang.invoke.CallSite;
+import java.lang.invoke.MethodHandle;
+
 import org.apache.uima.cas.impl.CASImpl;
 import org.apache.uima.cas.impl.TypeImpl;
 import org.apache.uima.cas.impl.TypeSystemImpl;
@@ -54,10 +57,16 @@ public class LanguagePair extends TOP {
 
 
   /* Feature Adjusted Offsets */
-  public final static int _FI_lang1 = TypeSystemImpl.getAdjustedFeatureOffset("lang1");
-  public final static int _FI_lang2 = TypeSystemImpl.getAdjustedFeatureOffset("lang2");
-  public final static int _FI_description = TypeSystemImpl.getAdjustedFeatureOffset("description");
-
+//  public final static int _FI_lang1 = TypeSystemImpl.getAdjustedFeatureOffset("lang1");
+//  public final static int _FI_lang2 = TypeSystemImpl.getAdjustedFeatureOffset("lang2");
+//  public final static int _FI_description = TypeSystemImpl.getAdjustedFeatureOffset("description");
+  private final static CallSite _FC_lang1 = TypeSystemImpl.createCallSite(LanguagePair.class, "lang1");
+  private final static CallSite _FC_lang2 = TypeSystemImpl.createCallSite(LanguagePair.class, "lang2");
+  private final static CallSite _FC_description = TypeSystemImpl.createCallSite(LanguagePair.class, "description");
+  
+  private final static MethodHandle _FH_lang1 = _FC_lang1.dynamicInvoker();
+  private final static MethodHandle _FH_lang2 = _FC_lang2.dynamicInvoker();
+  private final static MethodHandle _FH_description = _FC_description.dynamicInvoker();
    
   /** Never called.  Disable default constructor
    * @generated */
@@ -100,14 +109,14 @@ public class LanguagePair extends TOP {
    * @generated
    * @return value of the feature 
    */
-  public String getLang1() { return _getStringValueNc(_FI_lang1);}
+  public String getLang1() { return _getStringValueNc(wrapGetIntCatchException(_FH_lang1));}
     
   /** setter for lang1 - sets  
    * @generated
    * @param v value to set into the feature 
    */
   public void setLang1(String v) {
-    _setStringValueNfc(_FI_lang1, v);
+    _setStringValueNfc(wrapGetIntCatchException(_FH_lang1), v);
   }    
     
    
@@ -119,14 +128,14 @@ public class LanguagePair extends TOP {
    * @generated
    * @return value of the feature 
    */
-  public String getLang2() { return _getStringValueNc(_FI_lang2);}
+  public String getLang2() { return _getStringValueNc(wrapGetIntCatchException(_FH_lang2));}
     
   /** setter for lang2 - sets  
    * @generated
    * @param v value to set into the feature 
    */
   public void setLang2(String v) {
-    _setStringValueNfc(_FI_lang2, v);
+    _setStringValueNfc(wrapGetIntCatchException(_FH_lang2), v);
   }    
     
    
@@ -138,14 +147,14 @@ public class LanguagePair extends TOP {
    * @generated
    * @return value of the feature 
    */
-  public String getDescription() { return _getStringValueNc(_FI_description);}
+  public String getDescription() { return _getStringValueNc(wrapGetIntCatchException(_FH_description));}
     
   /** setter for description - sets  
    * @generated
    * @param v value to set into the feature 
    */
   public void setDescription(String v) {
-    _setStringValueNfc(_FI_description, v);
+    _setStringValueNfc(wrapGetIntCatchException(_FH_description), v);
   }    
     
   }