Steve Lawrence created DAFFODIL-2925:
----------------------------------------
Summary: Saved parsers are not always reproducible
Key: DAFFODIL-2925
URL: https://issues.apache.org/jira/browse/DAFFODIL-2925
Project: Daffodil
Issue Type: Improvement
Reporter: Steve Lawrence
The DataProcessor.save() method uses normal Java serialization to write the
DataProcessor to a file so that it can be easily reused without performing
potentially expensive schema compilation. This works fine, and efforts have
been made to ensure there are no environment-specific values in the serialize
data processor (e.g. DAFFODIL-2918). However, JVM implementations can make
optimizations (e.g. converting zero-length arrays to singletons) which can
result in functionally the same, but technically different, saved parsers. This
makes reproducibility difficult since it depends on whether an optimization is
triggered or not.
An it's hard to predict when or even what optimizations it will do that could
result in non-reproducibility. We should investigate alternatives to saving
parsers to make reproducible saved parsers more consistent. It might be useful
if it was more human readable as well, or even compatible between different
versions of Daffodil.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)