When a JCas wrapper class is loaded, its features are bound to "index" positions in the type system available at the time that they are loaded. Normally this works great, even if different type systems are used because the features defined by the JCas classes have priority and thereby receive stable index positions.
However, there can be problems in situations where multiple classloaders are involved such that a JCas class that has been bound to one indexes in type system would later be bound to other indexes in slightly different type system, e.g. because the available features change (in a reasonably "compatible" way).
It would be nice if UIMA had a solution for this type of problem.