[
https://issues.apache.org/jira/browse/UIMA-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15456087#comment-15456087
]
Marshall Schor commented on UIMA-5097:
--------------------------------------
I don't think this is a design decision, and, it's not possible for a component
to do a cas.reset() inside its process() method - that operation is "locked
out". See method switchClassLoaderLockCasCL in CASImpl, line 4291, where it
calls "enableReset(false)" which sets the shared view data's "flushEnabled" to
false.
> 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
> Assignee: Marshall Schor
> Attachments: UIMA5097SuiteTest.java
>
>
> 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)