[
https://issues.apache.org/jira/browse/UIMA-5097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15455752#comment-15455752
]
Richard Eckart de Castilho commented on UIMA-5097:
--------------------------------------------------
Issue can be reproduced without running the entire set of test classes by
setting up a minimal test suite:
{noformat}
package org.apache.uima.fit.util;
import org.apache.uima.fit.component.ViewCreatorAnnotatorTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.apache.uima.fit.util.SimplePipelineTest;
@RunWith(Suite.class)
@Suite.SuiteClasses({ViewCreatorAnnotatorTest.class, SimplePipelineTest.class})
public class UIMA5097SuiteTest {
// nothing
}
{noformat}
> 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)