Jorn, I was able to replicate your scenario and see that there are actually
two problems:

1) UIMA core fails to reset CAS's lock if there is an exception in an
Annotator's hasNext() or next() method. If there is an exception,   the
input CAS remains locked and attempt to reset() the CAS results
in CASAdminException: Can't flush CAS, flushing is disabled.

2) UIMA AS aggregate doesn't return exception to the client if there is a
failure in an aggregate's  delegate as described in #1 above.

I will fix both of these tomorrow

Thanks for finding these problems

JC

On Tue, Jan 5, 2010 at 12:30 PM, Jaroslaw Cwiklik <[email protected]> wrote:

> Jorn, the NPE exception is coming from your CM as this shows:
>
>
> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(512):
> SEVERE: Exception occurred
> java.lang.NullPointerException
>         at
> dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
>
> The other exceptions are logged by UIMA AnalysisEngine, then by UIMA AS
> Error Handler, and finally by the enclosing Aggregate Error Handler.
> It looks like UIMA AS is trying to release CAS more than once while
> handling the NPE resulting in the
>
> WARNING: CASAdminException: Can't flush CAS, flushing is disabled.
>
> I will look into this
>
> Jerry C
>
> On Tue, Jan 5, 2010 at 11:45 AM, Jörn Kottmann <[email protected]> wrote:
>
>> Eddie Epstein wrote:
>>
>>> Hi Jorn,
>>>
>>> The problem most likely due to the prior Runtime exception. Is there
>>> a stack trace for that? Is the CasMultiplier doing anything strange,
>>> like calling cas.reset()?
>>>
>>>
>> The exception occurs before getEmtpyCas is call, no there is
>> no cas.reset() call.
>>
>> There is mistake in the log statement, because the second message
>> contains {0}.
>>
>>  Can you send the full stack trace for the other exception?
>>>
>>>
>> I think the exception gets logged three times and afterwards
>> there is the log message of the mentioned warning.
>> The error repeats a few times, not sure if thats really
>> the one which causes the hang.
>>
>> Do you think there is a mistake in the implementation of my Cas Multiplier
>> ?
>>
>> Stack trace from log file:
>>
>> 1/5/10 3:16:41 PM - 11:
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(512):
>> SEVERE: Exception occurred
>> java.lang.NullPointerException
>>       at
>> dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:489)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:594)
>>       at
>> org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:454)
>>       at
>> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:691)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:929)
>>       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
>> org.apache.uima.aae.UimaAsThreadFactory$1.run(UimaAsThreadFactory.java:81)
>>       at java.lang.Thread.run(Thread.java:619)
>>
>> 1/5/10 3:16:41 PM - 11:
>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler.handleError:
>> WARNING: {0}
>> org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:516)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:594)
>>       at
>> org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:454)
>>       at
>> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:691)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:929)
>>       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
>> org.apache.uima.aae.UimaAsThreadFactory$1.run(UimaAsThreadFactory.java:81)
>>       at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.NullPointerException
>>       at
>> dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:489)
>>       ... 11 more
>>
>> 1/5/10 3:16:41 PM - 16:
>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler.handleError:
>> WARNING: {0}
>> org.apache.uima.aae.error.UimaAsDelegateException: ---->
>> Controller:/SearchEngine Received Exception  on
>> CAS:58a4bd3a:125fe0215fc:3b5e From Delegate:DocumentRetrieverCasMultiplier
>>       at
>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handleProcessResponseWithException(ProcessResponseHandler.java:525)
>>       at
>> org.apache.uima.aae.handler.input.ProcessResponseHandler.handle(ProcessResponseHandler.java:646)
>>       at
>> org.apache.uima.aae.handler.HandlerBase.delegate(HandlerBase.java:149)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:957)
>>       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)
>> Caused by: org.apache.uima.aae.error.UimaEEServiceException:
>> org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>       at
>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler.sendExceptionToClient(ProcessCasErrorHandler.java:124)
>>       at
>> org.apache.uima.aae.error.handler.ProcessCasErrorHandler.handleError(ProcessCasErrorHandler.java:609)
>>       at
>> org.apache.uima.aae.error.ErrorHandlerChain.handle(ErrorHandlerChain.java:57)
>>       at
>> org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:668)
>>       at
>> org.apache.uima.aae.handler.HandlerBase.invokeProcess(HandlerBase.java:121)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handleProcessRequestWithCASReference(ProcessRequestHandler_impl.java:691)
>>       at
>> org.apache.uima.aae.handler.input.ProcessRequestHandler_impl.handle(ProcessRequestHandler_impl.java:929)
>>       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
>> org.apache.uima.aae.UimaAsThreadFactory$1.run(UimaAsThreadFactory.java:81)
>>       ... 1 more
>> Caused by: org.apache.uima.analysis_engine.AnalysisEngineProcessException
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:516)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl$AnalysisComponentCasIterator.next(PrimitiveAnalysisEngine_impl.java:594)
>>       at
>> org.apache.uima.aae.controller.PrimitiveAnalysisEngineController_impl.process(PrimitiveAnalysisEngineController_impl.java:454)
>>       ... 9 more
>> Caused by: java.lang.NullPointerException
>>       at
>> dk.infopaq.dtsearch.DocumentRetriever.next(DocumentRetriever.java:114)
>>       at
>> org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentNext(PrimitiveAnalysisEngine_impl.java:489)
>>       ... 11 more
>>
>> 1/5/10 3:16:41 PM - 16:
>> org.apache.uima.aae.controller.AggregateAnalysisEngineController_impl.replyToClient:
>> WARNING: CASAdminException: Can't flush CAS, flushing is disabled.
>>
>>
>>
>

Reply via email to