aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Steiner <ssteiner@apache.org>2024-08-07 13:02:29 +0100
committerSimon Steiner <ssteiner@apache.org>2024-08-07 13:02:29 +0100
commitc11f43c9dbf529b87820d77ef501aa10699fc9d8 (patch)
treeb50d5fd72d75f32c748f02af60c21b227c6eed09
parentd54e5f7c1b9c68612cba0bd11f994eadcdb73cf4 (diff)
downloadxmlgraphics-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.java2
-rw-r--r--fop-core/src/test/java/org/apache/fop/apps/io/URIResolverWrapperTestCase.java5
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);