You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by ss...@apache.org on 2024/10/24 13:31:53 UTC
(xmlgraphics-commons) branch main updated: XGC-145: Avoid parsing uri to read page number
This is an automated email from the ASF dual-hosted git repository.
ssteiner pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/xmlgraphics-commons.git
The following commit(s) were added to refs/heads/main by this push:
new 7c3111c XGC-145: Avoid parsing uri to read page number
7c3111c is described below
commit 7c3111caff2db5bed171d5d870633aea03356e90
Author: Simon Steiner <ss...@apache.org>
AuthorDate: Thu Oct 24 14:31:38 2024 +0100
XGC-145: Avoid parsing uri to read page number
---
.../xmlgraphics/image/loader/util/ImageUtil.java | 43 ++++++++--------------
.../image/loader/ImageUtilTestCase.java | 20 +++++-----
2 files changed, 25 insertions(+), 38 deletions(-)
diff --git a/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java b/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
index f658041..12ee840 100644
--- a/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
+++ b/src/main/java/org/apache/xmlgraphics/image/loader/util/ImageUtil.java
@@ -25,8 +25,6 @@ import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
-import java.net.URI;
-import java.net.URISyntaxException;
import java.util.Map;
import java.util.zip.GZIPInputStream;
@@ -267,33 +265,24 @@ public final class ImageUtil {
if (uri.indexOf('#') < 0) {
return null;
}
- try {
- URI u = new URI(uri);
- String fragment = u.getFragment();
- if (fragment != null) {
- int pos = fragment.indexOf(PAGE_INDICATOR);
- if (pos >= 0) {
- pos += PAGE_INDICATOR.length();
- StringBuffer sb = new StringBuffer();
- while (pos < fragment.length()) {
- char c = fragment.charAt(pos);
- if (c >= '0' && c <= '9') {
- sb.append(c);
- } else {
- break;
- }
- pos++;
- }
- if (sb.length() > 0) {
- int pageIndex = Integer.parseInt(sb.toString()) - 1;
- pageIndex = Math.max(0, pageIndex);
- return pageIndex;
- }
+ int pos = uri.indexOf(PAGE_INDICATOR);
+ if (pos >= 0) {
+ pos += PAGE_INDICATOR.length();
+ StringBuilder sb = new StringBuilder();
+ while (pos < uri.length()) {
+ char c = uri.charAt(pos);
+ if (c >= '0' && c <= '9') {
+ sb.append(c);
+ } else {
+ break;
}
+ pos++;
+ }
+ if (sb.length() > 0) {
+ int pageIndex = Integer.parseInt(sb.toString()) - 1;
+ pageIndex = Math.max(0, pageIndex);
+ return pageIndex;
}
- } catch (URISyntaxException e) {
- throw new IllegalArgumentException("URI is invalid: "
- + e.getLocalizedMessage());
}
return null;
}
diff --git a/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java b/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
index eaaa068..944a2a9 100644
--- a/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
+++ b/src/test/java/org/apache/xmlgraphics/image/loader/ImageUtilTestCase.java
@@ -23,7 +23,6 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
import org.apache.xmlgraphics.image.loader.util.ImageUtil;
@@ -34,10 +33,9 @@ public class ImageUtilTestCase {
/**
* Tests {@link ImageUtil.needPageIndexFromURI(String)}.
- * @throws Exception if an error occurs
*/
@Test
- public void testNeedPageIndex() throws Exception {
+ public void testNeedPageIndex() {
int pageIndex;
pageIndex = ImageUtil.needPageIndexFromURI("http://localhost/images/scan1.tif");
@@ -56,23 +54,23 @@ public class ImageUtilTestCase {
assertEquals(1, pageIndex);
//Not a valid URI
- try {
- pageIndex = ImageUtil.needPageIndexFromURI("C:\\images\\scan1.tif#page=44");
- fail("Invalid URI. Method must fail.");
- } catch (IllegalArgumentException e) {
- //expected
- }
+ pageIndex = ImageUtil.needPageIndexFromURI("C:\\images\\scan1.tif#page=44");
+ assertEquals(43, pageIndex);
+
//Valid URI
pageIndex = ImageUtil.needPageIndexFromURI("file:///C:/images/scan1.tif#page=44");
assertEquals(43, pageIndex);
+
+ pageIndex = ImageUtil.needPageIndexFromURI(
+ "Balesetbiztosítás_ kötvénycsomag - e-mail_3000000637_Biztosítási kötvény melléklettel.pdf#page=1");
+ assertEquals(0, pageIndex);
}
/**
* Tests {@link ImageUtil.getPageIndexFromURI(String)}.
- * @throws Exception if an error occurs
*/
@Test
- public void testGetPageIndex() throws Exception {
+ public void testGetPageIndex() {
Integer pageIndex;
pageIndex = ImageUtil.getPageIndexFromURI("http://localhost/images/scan1.tif");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org