[
https://issues.apache.org/jira/browse/JENA-811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne closed JENA-811.
------------------------------
Resolution: Fixed
Fix Version/s: Jena 2.12.2
This fixes the presenting issue, making behaviour (more) consistent across all
Jena parsers. There is not change in global IRI policy; the fix is to be more
relaxed when resolving theRDF/XML base IRI in RIOT.
> org.apache.jena.riot.system.IRIResolver doesn't allow for any control over
> violation error/warning settings
> -----------------------------------------------------------------------------------------------------------
>
> Key: JENA-811
> URL: https://issues.apache.org/jira/browse/JENA-811
> Project: Apache Jena
> Issue Type: Bug
> Components: IRI
> Affects Versions: Jena 2.11.2
> Reporter: Matthew Jarvis
> Assignee: Andy Seaborne
> Priority: Minor
> Fix For: Jena 2.12.2
>
>
> The IRIResolver class has a public static iriFactory that is used for
> creating IRIs, but consumers never have a chance to call
> IRIResolver.iriFactory#setIsError or IRIResolver.iriFactory#setIsWarning
> because the iriFactory is used in a static block when the class is loaded.
> Any attempts to call either the setIsError or setIsWarning method throw the
> following exception:
> {noformat}
> java.lang.IllegalStateException: Cannot reinitialize IRIFactory after first
> use.
> at
> org.apache.jena.iri.impl.IRIFactoryImpl.initializing(IRIFactoryImpl.java:255)
> at org.apache.jena.iri.IRIFactory.setIsError(IRIFactory.java:579)
> ...
> {noformat}
> A simple test case that illustrates the problem is:
> {noformat}
> @Test
> public void testIgnoreLowercaseViolation() {
> IRIResolver.iriFactory.setIsError(ViolationCodes.LOWERCASE_PREFERRED,
> false);
> IRIResolver.resolveIRI("http://EXAMPLE.com");
> }
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)