Steve Lawrence created DAFFODIL-2837:
----------------------------------------
Summary: Full/Custom validation removes the ability to change blob
attributes
Key: DAFFODIL-2837
URL: https://issues.apache.org/jira/browse/DAFFODIL-2837
Project: Daffodil
Issue Type: Bug
Components: Back End
Affects Versions: 3.5.0
Reporter: Steve Lawrence
Fix For: 3.5.1
When full or custom validation is enabled, Daffodil creates a
TeeInfosetOutputter with one arm going to the original InfosetOutputter
provided by the user and the other going to an InfosetOutputter used to
validate the infoset result. This TeeInfosetOutputter simply proxies infoset
events to both InfosetOutputers.
However, it does not proxy blob related functions (e.g. setBlobAttributes,
getBlobDirectory). So if a user modifies the blob attributes of their
InfosetOuputter, they will not be used because Daffodil only sees the
attributes on the TeeInfosetOutputter, which are just the default values.
Instead, the TeeInfosetOutputter should proxy the blob related functions to the
first InfosetOutputter which is what the user provided.
As a partial workaround, the blob directory can be controlled by changing the
"java.io.tmpdir" property, but note that that could affect other things if they
use this property too. I don't believe Daffodil uses it for anything else.
There is no workaround to change the prefix or suffix.
Alternatively, disabling full/custom validation and relying on either limited
validation and/or external validation will also allow configuring these
attributes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)