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

Rob Vesse updated JENA-198:
---------------------------

    Attachment: TSVIllegalOutput.patch
                TSVIllegalInput.patch

Patches to fix both illegal input and output for TSV (allowing prefixed names 
where they should be forbidden)
                
> TSV Output may be invalid but TSV Input reads it fine
> -----------------------------------------------------
>
>                 Key: JENA-198
>                 URL: https://issues.apache.org/jira/browse/JENA-198
>             Project: Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: ARQ 2.9.1
>         Environment: Any
>            Reporter: Rob Vesse
>            Priority: Minor
>              Labels: tsv
>             Fix For: ARQ 2.9.1
>
>         Attachments: TSVIllegalInput.patch, TSVIllegalOutput.patch
>
>
> I noticed today that TSVOutput may produce output that contains prefixed 
> names which is invalid per my reading of the relevant specification - 
> http://www.w3.org/TR/sparql11-results-csv-tsv/
> This is due to the fact that TSVOutput called FmtUtils.stringForNode() with 
> only a Node resulting in it using the ARQ default prefix mapping for output.
> Attached is a simple patch which fixes the issue, it should also speed up 
> TSVOutput marginally as the existing code requires a SerializationContext to 
> be created for every term serialized and incurs the cost of trying to turn 
> URIs into prefixed names.  Essentially the patch creates a null 
> SerializationContext variable and just passes that to every call to 
> FmtUtils.stringForNode() so that the ARQ default prefix mapping never gets 
> used.
> The second part of the issue is that this malformed TSV input may be accepted 
> because TSVInputIterator uses NodeFactory.parseNode() to parse terms which 
> calls SSE.parseNode() without any prefix mapping and thus internally ends up 
> using the default SSE prefix mapping which means some prefixed names get 
> permitted as valid when they should be rejected.
> The second patch attached fixes this part of the issue by keeping an empty 
> static prefix map and calling SSE.parseNode() directly and passing in this 
> map.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to