Michael Kainzbauer created FOP-3036: ---------------------------------------
Summary: InternaResourceResolver fails on schemes starting with "data" Key: FOP-3036 URL: https://issues.apache.org/jira/browse/FOP-3036 Project: FOP Issue Type: Bug Components: unqualified Affects Versions: 2.6 Reporter: Michael Kainzbauer org.apache.fop.apps.io.InternalResourceResolver seems to check for "DataURIs" in a wrong way: {{public Resource getResource(String stringUri) throws IOException, URISyntaxException {}} {{return *{color:#FF0000}s{color}{color:#FF0000}tringUri.startsWith("data:"){color}* ? new Resource(this.resolveDataURI(stringUri)) : this.{color:#57d9a3}getResource{color}(cleanURI(stringUri));}} {{}}} {{public Resource {color:#57d9a3}getResource{color}(URI uri) throws IOException {}} {{return uri.getScheme() != null && *{color:#FF0000}uri.getScheme().startsWith("data"){color}* ? new Resource(this.resolveDataURI(uri.toASCIIString())) : this.resourceResolver.getResource(this.resolveFromBase(uri));}} {{}}} The first check in Method {{{}public Resource getResource(String stringUri){}}}, if the stringUri starts with "data:" is correct: any URIs with, an only with, the scheme "data" will be resolved with the resolveDataURI method. Example: * resolving an URI with scheme "data" will be resolved with the resolveDataURI method * resolving an URI with scheme "datamatrix" will be delegated to {{public Resource {color:#57d9a3}getResource{color}(URI uri) method.}} * resolving an URI with scheme "foo" will be delegated to {{public Resource {color:#57d9a3}getResource{color}(URI uri) method.}} The second check in {{{}public Resource {color:#57d9a3}getResource{color}(URI uri){}}}, if the scheme starts with data is wrong: any URIs with a scheme starting with"data" will be resolved with the resolveDataURI method. Example: * resolving an URI with scheme "data" will be resolved with the resolveDataURI method * {{resolving an URI with scheme "datamatrix" will be resolved with the resolveDataURI method, which is wrong, should be handled by this.resourceResolver.getResource(this.resolveFromBase(uri)}} * {{resolving an URI with scheme "foo" will be handled by this.resourceResolver.getResource(this.resolveFromBase(uri)}} -- This message was sent by Atlassian Jira (v8.20.1#820001)