[ https://issues.apache.org/jira/browse/UIMA-5662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16295161#comment-16295161 ]
Marshall Schor commented on UIMA-5662: -------------------------------------- I'm thinking that v3 wants (over time) to deprecate using FSids for these kinds of things, and replace them with structures which store sets or maps (between ids -> FSs for example) as objects in the CAS, customized by users for what they want (e.g. weak references, etc.). I see this issue as focused on supporting more backwards compatibility. Towards that end, having this mode, and setting the FsId equal to the imputed or explicit "address" in the serialized form, helps. But as the comment 2 above, the CasComplete format doesn't prevent unreachable FSs from being dropped on subsequent serializations, and because the id's are not written out (but rather imputed from order information), this represents a breaking change I think. (Of course, perhaps I read the code wrong - have you tried this with v3 where something becomes unreachable?) > uv3 support CAS deserialization subsequent low level access > ----------------------------------------------------------- > > Key: UIMA-5662 > URL: https://issues.apache.org/jira/browse/UIMA-5662 > Project: UIMA > Issue Type: Improvement > Components: Core Java Framework > Affects Versions: 3.0.0SDK-beta > Reporter: Marshall Schor > Assignee: Marshall Schor > Priority: Minor > Fix For: 3.0.0SDK > > > Some users depend 1) constant v2-ids for FSs preserved in deserialization and > serialization, and 2) low level cas API access to these. > V3 normally doesn't maintain tables linking ids to FSs, as these (unless weak > refs are used) prevent GC of unreachable FSs. > Based on a mode, set by -Duima.deserialize_perserve_ids, and also > controllable by new config option per deserialize call, alter the > deserialization for those deserializers which know about v2 ids, to put these > into the map used for low-level CAS access, using the actual v2 ids, and > change the v3 next available id for future new FSs to be 1 beyond the end. > The -Duima.deserialize-preserve_ids global setting is needed to handle the > use case of some annotators using low-level APIs, when part of a pipeline is > "remoted". -- This message was sent by Atlassian JIRA (v6.4.14#64029)