Some other things to consider:

The way Ruta is using uimaFIT in the failing case results in multiple analysis
engines created with different resource managers, but the CAS from one is (I
think - didn't check this...) sent through the AE of another.

When multiple AEs are used this way with a common CAS, then the type system,
type priorities and indexes definition associated with this common CAS are used.
So it makes sense to share these parts of the Resource Manager.

And, if the intent is to have JCas cover classes produced by one of the AEs
usable by the other AEs, then there should not be extra UIMA Class loaders, and
class loader switching.  This is because one of the things that class loader
switching does is to swap in/ out different JCasHashMaps.  These are maps that
associated already created JCas instances with specific Cas Feature Structures. 
This could be important, if the JCas instance was carrying along extra
information (not in the CAS) that you wanted shared with other
class-loading-contexts (e.g., an "outer" AE, or an "application").

-Marshall

Reply via email to