[
https://issues.apache.org/jira/browse/UIMA-6047?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marshall Schor resolved UIMA-6047.
----------------------------------
Resolution: Fixed
> uv3 deserialization of typed arrays could be faulty in edge case
> ----------------------------------------------------------------
>
> Key: UIMA-6047
> URL: https://issues.apache.org/jira/browse/UIMA-6047
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 3.0.2SDK
> Reporter: Marshall Schor
> Assignee: Marshall Schor
> Priority: Major
> Fix For: 3.0.3SDK
>
>
> UIMA has some limited support for typed arrays. These are declared in type
> system descriptors by including an elementType specification for a feature
> whose range is FSArray.
> See
> [http://uima.apache.org/d/uimaj-current/references.html#ugr.ref.xml.component_descriptor.type_system.features]
> The XCAS and the Xmi serialization forms serialize these as FSArray. The
> deserialization code, when deserializing these, looks at the feature
> declaration to see if it has an elementType, and if so, changes the type of
> the Feature Structure to that type.
> This is fine except for two cases:
> 1) backwards compatibility - this wasn't done in v2. This might be an
> ignorable difference (except for utilities that compare CASs, and don't
> accommodate this).
> 2) (more important) Sometimes feature structures are "shared" - that is,
> multiple different features might reference the same one. These features
> might not have the same element type. A not unusual use case is the one
> where the item being referenced is a 0-length Feature Structure, and the code
> is sharing one common (immutable) instance of this.
> For #2, one possible fix is to examine the "multipleReferencesAllowed"
> property of the feature, and only do this narrowing of the type if this is
> false, and the rest of the code hasn't accidentally shared this feature
> structure with other references.
> For #1, perhaps the right approach is to have a backwards compatibility -D
> flag that (if set) avoids doing this type update when deserializing.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)