[
https://issues.apache.org/jira/browse/UIMA-5662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16293726#comment-16293726
]
Richard Eckart de Castilho commented on UIMA-5662:
--------------------------------------------------
Well, that was wishful thinking ;) But with a lambda, you can do almost the
same - except that exception handling is more problematic.
{noformat}
cas.withFsMapping(() -> {
deserialize(stream ,cas);
});
{noformat}
Anyway, I think I was just getting carried away with syntactic sugar.
Having the methods on the LowLevelCas makes sense. All the methods there seem
to start with "ll_", so how about:
{noformat}
LowLevelCAS.ll_setGetFSForRefEnabled(boolean)
LowLevelCAS.ll_isGetFSForRefEnabled();
{noformat}
This would facilitate writing code that restores the flag after an operation
and would remove the potential need to do call-counting and maintaining an
internal stack of states for this flag.
{noformat}
boolean enabled = llcas.ll_isGetFSForRefEnabled();
try {
llcas.ll_setGetFSForRefEnabled(true);
}
finally {
llcas.ll_setGetFSForRefEnabled(enabled);
}
{noformat}
> 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)