[UIMA-AS] fix potential thread safety issue with flow controller code
---------------------------------------------------------------------
Key: UIMA-1149
URL: https://issues.apache.org/jira/browse/UIMA-1149
Project: UIMA
Issue Type: Bug
Components: Async Scaleout
Affects Versions: 2.2.2AS
Reporter: Marshall Schor
Priority: Minor
The general "contract" regarding threading for user-written UIMA components is
that components do not have to be written to be thread-safe, or, more
precisely, the framework guarantees it will not call an instance of a
user-written component class on multiple threads at the same time. See
http://incubator.apache.org/uima/downloads/releaseDocs/2.2.2-incubating/docs/html/tutorials_and_users_guides/tutorials_and_users_guides.html#ugr.tug.aae.contract_for_annotator_methods
This is intended to make writing UIMA components by our user community easier,
and to eliminate many hard-to-diagnose issues that could occur otherwise.
The FlowController main object class, the one that is specified in the custom
flow control specification for an aggregate, in UIMA-AS, can be (we think, but
to be investigated :-) ) be called on multiple threads at the same time, in the
current implementation. This Jira is to fix this, by synchronizing on the flow
controller object so that users don't have to write thread safe implementations
of this class.
Also, the docs in the above referenced manual should be updated to include the
flow controller object in the set of objects where the framework guarantees
that instances of this object will not be called on multiple threads at the
same time.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.