git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Resolved] (DAFFODIL-1924) DaffodilXMLLoader needs to explicitly specify which instance to use


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

Steve Lawrence resolved DAFFODIL-1924.
--------------------------------------
    Resolution: Fixed
      Assignee: Dave Thompson  (was: Steve Lawrence)

Fixed in e79a43c8ce8a19992811605cf1b4f47042e071d5

> DaffodilXMLLoader needs to explicitly specify which instance to use
> -------------------------------------------------------------------
>
>                 Key: DAFFODIL-1924
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1924
>             Project: Daffodil
>          Issue Type: New Feature
>          Components: Front End
>    Affects Versions: 2.1.0
>            Reporter: Steve Lawrence
>            Assignee: Dave Thompson
>            Priority: Major
>             Fix For: 2.2.0
>
>
> The SAXParserFactory.newInstance() method is used to create a new instance of a SAXParser. There are a handful of steps taken to find a SAXParser to use, as documented in the [newInstance() JavaDocs|https://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/SAXParserFactory.html#newInstance()]. The problem with this is that Daffodil sets the entity-resolver property to an instance of the DFDLCatalogResolver, which extends a specific Xerces XMLEntityResolver. In order for this to work, we must be guaranteed that the SAXParserFactory instance we get is the Xerces one, and not some other one overridden by one of the ways described in newInstace().
> So instead, we should use the newInstance method that lets you provide a string specifying which factory class to use, and specify our Xerces one.



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