diff options
author | Simon Steiner <ssteiner@apache.org> | 2024-08-07 13:02:29 +0100 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2024-08-07 13:02:29 +0100 |
commit | c11f43c9dbf529b87820d77ef501aa10699fc9d8 (patch) | |
tree | b50d5fd72d75f32c748f02af60c21b227c6eed09 | |
parent | d54e5f7c1b9c68612cba0bd11f994eadcdb73cf4 (diff) | |
download | xmlgraphics-fop-c11f43c9dbf529b87820d77ef501aa10699fc9d8.tar.gz xmlgraphics-fop-c11f43c9dbf529b87820d77ef501aa10699fc9d8.zip |
FOP-3198: Allow curly braces for src url
-rw-r--r-- | fop-core/src/main/java/org/apache/fop/apps/io/InternalResourceResolver.java | 2 | ||||
-rw-r--r-- | fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/apps/io/InternalResourceResolver.java b/fop-core/src/main/java/org/apache/fop/apps/io/InternalResourceResolver.java index 470f2e4ba..1fe530bd3 100644 --- a/fop-core/src/main/java/org/apache/fop/apps/io/InternalResourceResolver.java +++ b/fop-core/src/main/java/org/apache/fop/apps/io/InternalResourceResolver.java @@ -133,6 +133,8 @@ public class InternalResourceResolver { } String fixedUri = uriStr.replace('\\', '/'); fixedUri = fixedUri.replace(" ", "%20"); + fixedUri = fixedUri.replace("{", "%7B"); + fixedUri = fixedUri.replace("}", "%7D"); URI baseURI = new URI(fixedUri); return baseURI; } diff --git a/fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java b/fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java index 5bab320f6..ffb477a73 100644 --- a/fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java @@ -120,6 +120,11 @@ public class URIResolverWrapperTestCase { assertNull(InternalResourceResolver.cleanURI(null)); } + @Test + public void testCurlyBrackets() throws Exception { + assertEquals(InternalResourceResolver.cleanURI("{test}.jpg"), new URI("%7Btest%7D.jpg")); + } + private void test(String uriStr, URI uri, URI expected) throws IOException, URISyntaxException { ResourceResolver resolver = mock(ResourceResolver.class); InternalResourceResolver sut = new InternalResourceResolver(base, resolver); |