[ 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)