[ https://issues.apache.org/jira/browse/UIMA-5601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16190382#comment-16190382 ]
Marshall Schor edited comment on UIMA-5601 at 10/3/17 9:31 PM: --------------------------------------------------------------- Current proposal: # CasCopier copy of sofa, uses special api when setting the sofa string, so that no update-document-annotation side effect occurs # no special handling of copying of types that are document annotation - done just like any other type. I think this satisfies all use cases... I don't see any dependency on how the sofa string is set. Did I miss something? Re: exception for multiple creations of instances of (subtypes-of) DocumentAnnotation - not sure this is worth doing... was (Author: schor): Current proposal: # CasCopier copy of sofa, uses special api when setting the sofa string, so that no update-document-annotation side effect occurs # no special handling of copying of types that are document annotation - done just like any other type. I think this satisfies all use cases... Did I miss some? Re: exception for multiple creations of instances of (subtypes-of) DocumentAnnotation - not sure this is worth doing... > uv3: CasCopier problems with custom subclasses of DocumentAnnotation > -------------------------------------------------------------------- > > Key: UIMA-5601 > URL: https://issues.apache.org/jira/browse/UIMA-5601 > Project: UIMA > Issue Type: Bug > Components: Core Java Framework > Affects Versions: 3.0.0SDK-beta > Reporter: Richard Eckart de Castilho > > It seems as if there may be a bug in the way that CasCopier handles the > documen annotation. > Specifically, it seems as if the CasCopier incorrectly handles the case where > the target CAS already contains a document annotation. In my case, I do: > * create the target CAS > * add a document annotation (DocumentMetaData extends DocumentAnnotation) to > the target CAS > * create the CasCopier with the source and target CAS > * copy several FSes but *not* the document annotation > Expected: > * target CAS contains 1 DocumentMetaData annotation > Actual > * target CAS contains 2 DocumentMetaData annotation > Also, it seems that `isDocumentAnnotation` may not able to handle it if a CAS > uses a custom subclass of DocumentAnnotation: > {noformat} > private <T extends FeatureStructure> boolean isDocumentAnnotation(T aFS) { > if (((TOP)aFS)._getTypeCode() != TypeSystemConstants.docTypeCode) { > return false; > } > if (srcCasDocumentAnnotation == null) { > srcCasDocumentAnnotation = > srcCasViewImpl.getDocumentAnnotationNoCreate(); > } > return aFS == srcCasDocumentAnnotation; > } > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)