[
https://issues.apache.org/jira/browse/UIMA-4743?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marshall Schor resolved UIMA-4743.
----------------------------------
Resolution: Fixed
fixed. The output format changes for delta binary serialization of
modifications to existing byte/short/long arrays. The old format, in this
case, could not be read, so there's no backwards compatible issue to fixing
this.
> errors in plain binary cas delta serialization of short/long modifications to
> arrays
> ------------------------------------------------------------------------------------
>
> Key: UIMA-4743
> URL: https://issues.apache.org/jira/browse/UIMA-4743
> Project: UIMA
> Issue Type: Bug
> Components: Core Java Framework
> Affects Versions: 2.8.1SDK
> Reporter: Marshall Schor
> Assignee: Marshall Schor
> Fix For: 2.9.0SDK
>
>
> (Found by code reading, needs test case) The code in class CASSerializer for
> handling long/dbl value modified cells in arrays while doing delta
> serialization appears to have a some copy/paste kinds of errors. The first
> (line 583) attempts to get the collection of modified addrs in the long
> heap,but gets the "short" rather than "long" addrs. The second (line 587)
> writes the address of the modified value using a writeShort, which both
> silently fails if the value is > 32767, and only writes 2 bytes, while the
> corresponding "read" (in CASImpl after comment "//modified Short heap" reads
> the addresses as an integer. This makes all reading after this off by 2.
> This same kind of error (writing the address as a short) also appears in the
> handling of modifications of shorts (line 570).
> -Fixing this will result in writing more bytes to the serialization stream,
> so the streams won't be "compatible". Therefore, do some kind of
> incrementing of versions and serialVersionId values to signal to readers this
> format change. Updating this for client/server pairs will require updates at
> both ends.-
> This bug causes failure of deserialization, if any short or long array values
> are modified and delta serialization is being used, so needs to be fixed.
> Added a new test case to check this area and found another issue: the
> rounding to word boundaries while serializing delta changes to byte and short
> arrays was incorrect. Fix that as well.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)