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 15:21:20 GMT

    [ 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)

Mime
View raw message