The UIMA AS client is not handling expired CASes coming from a Cas Multiplier aggregate.The scenario leading to a problem is as follows:
The aggregate CM is configured with a single thread in a listener processing Process and CPC requests. The client is configured to timeout before the service sends a child CAS. The client is configured with no CPC timeout.
UIMA AS client sends a CAS to an aggregate CasMultiplier which takes a long time to process (or there is a long GC). Before any child CASes are sent to a client, the client times out and sends a CPC. A bit later, the aggregate CM sends a child CAS. The client receives the CAS and finds that its parent CAS has expired. The client logs a message and ignores the CAS. The client is NOT sending the free Cas request to the aggregate CM, causing the aggregate to hang waiting for all of its CASes to be processed. Since the Free CAS never comes, the aggregate internal state is never updated and the thread processing the CPC is stuck (hangs). Modify UIMA AS client code to always send free cas request to a CM service.