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

Peter Klügl commented on UIMA-5957:
-----------------------------------

SimplePipeline.iteratePipeline is public :-)

I actually use this in integration tests to test complete pipelines.

# SimplePipeline.iteratePipeline creates a new JCasIterable
# JCasIterable.iterator() creates a new ResourceManager 
# then it uses that to produce the analysis engine
# then it creates a new JCasIterator
# The JCasIterator creates a new ResourceManager
# then it uses that to create the CAS

As a result, the JCas and the analysis engine refer to different uima class 
loaders because of the two resource managers, which leads the the 
reinitialization of the cover classes.

I know that I can fix this, e.g. with the ResourceManagerCreator, but it would 
be good if this can be avoided at all.

> JCasIterable and JCasIterator in SimplePipeline should use the same 
> ResourceManager
> -----------------------------------------------------------------------------------
>
>                 Key: UIMA-5957
>                 URL: https://issues.apache.org/jira/browse/UIMA-5957
>             Project: UIMA
>          Issue Type: Improvement
>          Components: uimaFIT
>    Affects Versions: 2.4.0uimaFIT
>            Reporter: Peter Klügl
>            Priority: Major
>
> Using SimplePipeline with JCas cover classes and Ruta leads currently to 
> class loader switching for each annotator since the JCas and the annotator 
> refer to a different uima class loader due to the resource managers. 
> Additionally, Ruta needs to perform internal reindexing, which can lead to 
> observed but undefined problems.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to