[
https://issues.apache.org/jira/browse/UIMA-6352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Richard Eckart de Castilho resolved UIMA-6352.
----------------------------------------------
Resolution: Fixed
> reinit(CASCompleteSerializer) does not properly reset indexes
> -------------------------------------------------------------
>
> Key: UIMA-6352
> URL: https://issues.apache.org/jira/browse/UIMA-6352
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 3.1.1SDK
> Reporter: Richard Eckart de Castilho
> Assignee: Richard Eckart de Castilho
> Priority: Major
> Fix For: 3.2.0SDK
>
>
> The {{CASCompleteSerializer}} consists of a {{CASMgrSerializer}} and a
> {{CASSerializer}}. However, {{CAS.reinit(CASCompleteSerializer)}} does not
> fully include the behavior of {{CAS.reinit(CASMgrSerializer)}} - in
> particular the index repositories in {{baseCas.svd.sofa2indexMap}} are not
> cleared. Since the {{CAS.reinit(CASCompleteSerializer)}} can replace the type
> system in the CAS, this can cause the {{TypeSystem}} and {{Type}} instances
> used in the CAS to be out-of-sync with the respective instances used in the
> {{FSIndexRepository}} instances stored in {{baseCas.svd.sofa2indexMap}}.
> This test illustrates the problem:
> {code}
> @Test
> public void thatReplacingTypeSystemInCasWorks() throws Exception {
> System.setProperty("uima.enable_strict_type_source_check", "true");
>
> CAS cas = CasCreationUtils.createCas();
> cas.setDocumentText("First view text");
> cas.createView("secondView").setDocumentText("Second view text");
> TypeSystem originalTypeSystem = cas.getTypeSystem();
> ByteArrayOutputStream buffer = new ByteArrayOutputStream();
> serializeWithCompression(cas, buffer, originalTypeSystem);
>
> TypeSystemDescription newTSD = new TypeSystemDescription_impl();
> newTSD.addType("my.Type", "", CAS.TYPE_NAME_ANNOTATION);
>
> CAS tempCas = createCas(newTSD, null, null, null);
> CASCompleteSerializer serializer = serializeCASComplete((CASImpl)
> tempCas);
> deserializeCASComplete(serializer, (CASImpl) cas);
>
> load(new ByteArrayInputStream(buffer.toByteArray()), cas,
> originalTypeSystem);
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)