[ 
https://issues.apache.org/jira/browse/DAFFODIL-752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Josh Adams reopened DAFFODIL-752:
---------------------------------
      Assignee:     (was: Elizabeth Fahl)

It seems that the extra details that the fix for this bug enabled have been 
lost at some point, and assertions no longer show the value that was parsed.  
There may have been a good reason for this, but a quick search through the 
tickets did not find anything obvious.

In TestAssertions.scala the test "test_assertFailShowsValue" requires the extra 
detail in the assertion failed message.

> Assertion failure message should show value that led to failure.
> ----------------------------------------------------------------
>
>                 Key: DAFFODIL-752
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-752
>             Project: Daffodil
>          Issue Type: Improvement
>          Components: Back End
>    Affects Versions: s10
>            Reporter: Michael Beckerle
>            Priority: Major
>             Fix For: s11-M1, s11
>
>          Time Spent: 20m
>
> We need to show the infoset element as part of the assertion failure message, 
> specifically for an assertion on an element of simple type.
> (For an assert on a complex type element, or a sequence or choice, it's 
> trickier. There I think we could show the infoset object, but as in many 
> places where we need to show this, we need to be able to elide unnecessary 
> substructure or parent structure. Otherwise these will get big and unweildy. 
> - separate JIRA issue should we decide to go there.)
> -------------------------------------
> From: Garriss Jr., James P. [jgarr...@mitre.org]
> Sent: Friday, June 07, 2013 10:23 AM
> To: Mike Beckerle; Stephen Lawrence
> Subject: [daffodil 0.10] Error message improvement suggestion
> I have this simple input:
>  
> MIME-Version: dog
>  
> Obviously invalid.  I���m describing it with this schema:
>  
>             <xsd:element name="MimeVersion" 
> dfdl:initiator="MIME-Version:%SP;" dfdl:terminator="%NL;" dfdl:length="3" 
> dfdl:lengthKind="explicit">
>                         <xsd:annotation>
>                                     <xsd:appinfo 
> source="http://www.ogf.org/dfdl/dfdl-1.0/";>
>                                                 <dfdl:assert test="{ 
> dfdl:checkConstraints(.) }" message="MIME-Version must have a value of 
> '1.0'."/>
>                                     </xsd:appinfo>
>                         </xsd:annotation>
>                         <xsd:simpleType>
>                                     <xsd:restriction base="xsd:string">
>                                                 <xsd:enumeration value="1.0"/>
>                                     </xsd:restriction>
>                         </xsd:simpleType>
>             </xsd:element>
>  
> The error message I get is:
>  
> [error] Parse Error: Assertion failed. MIME-Version must have a value of 
> '1.0'.
> Schema context: element.MimeVersion Location line 13 column 135 in 
> file:/C:/���/MimeVersion.xsd
> Data location was preceding byte 19
> UTF-8 text starting at byte 16 is: (g
> )
> Data (hex) starting at byte 16 is: (0x670D0A)
>  
> Getting my assertion message back is helpful, as it tells me what the right 
> value should be.  But I think this error could be improved by also telling me 
> what value was found.  Perhaps the message could look at bit more like this:
>  
> [parsing error] While processing the MimeVersion element, the value ���dog��� 
> was found.
> This fails the assertion: MIME-Version must have a value of '1.0'.
> Schema: Location line 13 column 135 in file:/C:/���/MimeVersion.xsd



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to