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)

Reply via email to