Marshall Schor created UIMA-4769:
------------------------------------
Summary: sofa mapping not set properly for flow controllers
Key: UIMA-4769
URL: https://issues.apache.org/jira/browse/UIMA-4769
Project: UIMA
Issue Type: Bug
Components: Core Java Framework
Affects Versions: 2.8.1SDK
Reporter: Marshall Schor
Fix For: 2.8.2SDK
A user reports the following problem:
* an inner aggregate (IA) is contained within an outer aggregate (OA)
* the OA has a sofa mapping specifying that initial view be mapped to "my_view"
(MV).
* IA has components A1 and A2, plus a flow controller (IA_FC).
A1 and A2 correctly receive MV as the cas view, via sofa mapping. However,
IA_FC does not - it receives the _InitialView.
When an aggregate is set up, there are two sofa mappings to consider; one is
the calling context's sofa mapping (if any) up to that point; and then there is
the aggregate's own sofa mapping from its descriptor. This 2nd sofa mapping
specifies, for each delegate, a set of sofa mappings. In addition to mapping
for delegates, it can also contain a mapping for the flow controller.
The intended operation is to set up sub-contexts for each delegate or flow
controller, that has the merge of the calling context's sofa mapping and any
mapping specified for the component. This merge is done, for example, in
UimaContext_ImplBase method "createChild". This logic is missing for the
analogous creation of the context for the flow controller. The fix is to (a)
pull out this bit of merge logic into a subroutine, and do it in both the
creation of the Annotator context, as well as the Flow controller context.
Test the fix to see if it fixes uima-as use case (if uima-as has this same
issue).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)