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)

Reply via email to