[
https://issues.apache.org/jira/browse/UIMA-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12510685
]
Marshall Schor commented on UIMA-476:
-------------------------------------
Some interesting things I found out while researching / fixing this.
1) The CASImpl method to set up the type system sets up the types in a
particular order. This order is hard-wired into the C++ layer, and cannot be
changed. I added a comment to the code about this.
2) Even if the C++ layer wasn't an issue, the order cannot be changed because
the CAS Complete Serialization which sends the type system sends (I think - not
confirmed) type "codes" between the systems. This means the codes must
correspond to the same types. In the case where you might have an "old" client
sending to a "new" server, these don't match.
3) The code for setup of the type system called type system impl functions
which depend on the types being initialized. For instance, when adding the
array base type, the calling sequence includes
ts.ll_isPrimitiveType -> ll_isRefType ->ll_getTypeClass -> ll_subsumes
The ll_subsumes was being passed a "0" as the type code of the super type (the
getTypeClass was trying to
see if the type was subsumed by the "String" type (e.g., a sub type of string),
but the string type hadn't been
set up yet).
I added a new test case that failed before this fix.
> FSArray causes error in SOAP service
> ------------------------------------
>
> Key: UIMA-476
> URL: https://issues.apache.org/jira/browse/UIMA-476
> Project: UIMA
> Issue Type: Bug
> Components: Transport Adapters - SOAP, Vinci
> Affects Versions: 2.1
> Environment: UIMA 2.1 and previous versions
> Reporter: Yoshinobu KANO
> Assignee: Marshall Schor
> Fix For: 2.2
>
>
> When we run a SOAP service with any type system which uses FSArray,
> AnalysisEngineProcessException occurs,
> though the same component can be run as a local service.
> It occurs in the type system checking, independently of the component
> implementations.
> The error says:
> Caused by: org.apache.uima.UIMARuntimeException: The JCas cannot be
> initialized. The following errors occurred: The JCAS range type
> uima.cas.FSArray for feature <OurFeatureName> of type <OurTypeName> does
> not match the CAS range <OurFeatureTypeName>[] for the feature.
> # replaced our specific feature/type names.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.