uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Eckart de Castilho (JIRA)" <...@uima.apache.org>
Subject [jira] [Commented] (UIMA-5097) Current component info on CAS not reset
Date Thu, 01 Sep 2016 12:13:20 GMT

    [ https://issues.apache.org/jira/browse/UIMA-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15455204#comment-15455204
] 

Richard Eckart de Castilho commented on UIMA-5097:
--------------------------------------------------

I checked against older UIMAJ versions (2.8.1, 2.7.0) and the problem appears with those as
well. I have no idea why this was never noticed before - I did occasionally run the uimaFIT
tests in Eclipse. Maybe the order in which the tests are executed changed for some reason.

So I am unsure if this is a problem in the way that uimaFIT uses the UIMAJ API or whether
this is a bug in UIMAJ.

Shouldn't a call to reset() also reset the component information (i.e. the view mapping)?
If not, Is there some way to *really reset* the CAS?

> Current component info on CAS not reset
> ---------------------------------------
>
>                 Key: UIMA-5097
>                 URL: https://issues.apache.org/jira/browse/UIMA-5097
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>            Reporter: Richard Eckart de Castilho
>
> uimaFIT tests re-use a single CAS which is stored in a thread-local variable and reset
that CAS between unit tests. Apparently there was some change which causes the Sofa-mapping
information - or more specifically the current component info from which that mapping is obtained
- to not be reset anymore. The problem only appears when running all uimafit-core tests jointly
in one JVM, e.g. from Eclipse.
> Initial hypothesis which proved to be wrong: 
> There may be a bug that might be related to the UimaContextHolder not being cleaned up
probably (probably in case of some kind of failure).
> The problem appears when running the uimafit-core tests in Eclipse. Here all tests run
in the same JVM instance which allows "global" information like thread locals to be carried
over between unit tests.
> Then running all tests and when the `ViewCreatorAnnotatorTest` runs before the `SimplePipelineTest`,
then the deserialization of an XMI file fails because `_InitialView` is still mapped to `myView`
in the UIMA context. Debugging yields that the UIMAContext in use for the SimplePipelineTest
apparently still belongs to the `ViewCreatorAnnotatorTest` because the *mQualifiedContextName*
is `/org.apache.uima.fit.component.ViewCreatorAnnotatorTest$SofaAwareAnnotator/`
> This hypothesis was wrong: checked it by verifying that UimaContextHolder.getContext()
is null before and after each unit test.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message