You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org> on 2010/06/02 15:43:40 UTC

[jira] Closed: (UIMA-1797) UIMA AS processParentLast logic is not working correctly

     [ https://issues.apache.org/jira/browse/UIMA-1797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jerry Cwiklik closed UIMA-1797.
-------------------------------

    Resolution: Fixed

Modified finalStep() to fetch the last delegate that handled a parent CAS to than decide which method to call finalStep() or process(). If the processParentLast=true, process() should be called with a parent CAS reference since it (the parent CAS) was previously "suspended". This call "resumes" processing the parent CAS if all of its children have been processed.  

> UIMA AS processParentLast logic is not working correctly
> --------------------------------------------------------
>
>                 Key: UIMA-1797
>                 URL: https://issues.apache.org/jira/browse/UIMA-1797
>             Project: UIMA
>          Issue Type: Bug
>          Components: Async Scaleout
>    Affects Versions: 2.3AS
>            Reporter: Jerry Cwiklik
>            Assignee: Jerry Cwiklik
>
> UIMA AS aggregate fails with NPE when using multiple CMs  configured with processParentLast=true. The aggregate throws this:
> java.lang.NullPointerException
>         at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.forceToDropTheCas(AggregateAnalysisEngineController_impl.java:1822)
>         at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.finalStep(AggregateAnalysisEngineController_impl.java:1624)
>         at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.finalStep(AggregateAnalysisEngineController_impl.java:1714)
>         at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.executeFlowStep(AggregateAnalysisEngineController_impl.java:2175)
>         at org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.process(AggregateAnalysisEngineController_impl.java:1207)
>         at org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:118)
>         at org.apache.uima.aae.handler.input.ProcessResponseHandler.cancelTimerAndProcess(ProcessResponseHandler.java:108)
>         at org.apache.uima.aae.handler.input.ProcessResponseHandler.handleProcessResponseWithCASReference(ProcessResponseHandler.java:383)
>         at org.apache.uima.aae.handler.input.ProcessResponseHandler.handle(ProcessResponseHandler.java:647)
>         at org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149)
>         at org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:989)
>         at org.apache.uima.aae.spi.transport.vm.UimaVmMessageListener.onMessage(UimaVmMessageListener.java:107)
>         at org.apache.uima.aae.spi.transport.vm.UimaVmMessageDispatcher$1.run(UimaVmMessageDispatcher.java:70)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:619)
> It does not matter if CMs are colocated or remote. If there is more than one CM with processParentLast=true, the code fails as above. The failure seems to occur while processing parent of the last child CAS.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.