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 2015/11/30 06:03:35 UTC
svn commit: r1717173 -
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/main/java/org/apache/uima/cas/impl/FSClassRegistry.java
Author: schor
Date: Mon Nov 30 05:03:35 2015
New Revision: 1717173
URL: http://svn.apache.org/viewvc?rev=1717173&view=rev
Log:
[UIMA-4679] use get declared field when getting the typeIndexID
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=1717173&r1=1717172&r2=1717173&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 Mon Nov 30 05:03:35 2015
@@ -201,11 +201,15 @@ public class FSClassRegistry {
* copy in built-ins
*/
for (int i = 0; i < jcasClassesInfoForBuiltins.length; i++) {
-
- JCasClassInfo jci;
- jcasClassesInfo[i] = jci = jcasClassesInfoForBuiltins[i];
+
+ JCasClassInfo jci = jcasClassesInfoForBuiltins[i];
+ jcasClassesInfo[i] = jci;
if (jci != null) {
- ts.setJCasRegisteredType(Misc.getStaticIntField(getJCasClass(i), "typeIndexID"), ts.getTypeForCode(i));
+ int v = Misc.getStaticIntField(getJCasClass(i), "typeIndexID");
+ // v is negative if not found, which is the case for types like FloatList (these can't be instantiated)
+ if (v >= 0) {
+ ts.setJCasRegisteredType(v, ts.getTypeForCode(i));
+ }
}
}
@@ -248,7 +252,7 @@ public class FSClassRegistry {
private ArrayList<FeatureImpl> getFeatureFromJFRI(TypeSystemImpl ts, TypeImpl ti, ArrayList<FeatureImpl> collector) {
Class<?> clazz = getJCasClass(ti.getCode());
for (FeatureImpl fi : ti.getMergedStaticFeaturesIntroducedByThisType()) {
- int indexJFRI = Misc.getStaticIntField(clazz, "_FI_" + fi.getShortName());
+ int indexJFRI = Misc.getStaticIntFieldNoInherit(clazz, "_FI_" + fi.getShortName());
if (indexJFRI != Integer.MIN_VALUE) { // that value is code for not found
fi.registryIndex = indexJFRI;
Misc.setWithExpand(collector, indexJFRI, fi);
@@ -276,7 +280,10 @@ public class FSClassRegistry {
clazz = maybeLoadJCas(ti.getName(), ti.getClass().getClassLoader());
if (null != clazz && TOP.class.isAssignableFrom(clazz)) {
jcasClassInfo = createJCasClassInfo(clazz, ti);
- ts.setJCasRegisteredType(Misc.getStaticIntField(clazz, "typeIndexID"), ti);
+ int i = Misc.getStaticIntFieldNoInherit(clazz, "typeIndexID");
+ if (i >= 0) {
+ ts.setJCasRegisteredType(i, ti);
+ }
}
jcasClassesInfo[typecode] = jcasClassInfo; // sets new one or default one
}