From 1a8d2c627dbab5234aea72a458c00b6bba28add0 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Tue, 1 Oct 2013 10:30:08 +0200 Subject: Fix Bug 844: Cannot ctor URI w/ scheme alone, use string-based concatenation native URI root and jar file. --- src/java/com/jogamp/common/util/IOUtil.java | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/java/com/jogamp/common/util/IOUtil.java') diff --git a/src/java/com/jogamp/common/util/IOUtil.java b/src/java/com/jogamp/common/util/IOUtil.java index 17bf136..6b9eef8 100644 --- a/src/java/com/jogamp/common/util/IOUtil.java +++ b/src/java/com/jogamp/common/util/IOUtil.java @@ -444,7 +444,7 @@ public class IOUtil { * @throws IllegalArgumentException if the URI doesn't match the expected formatting, or is null * @throws URISyntaxException */ - public static URI getDirname(URI uri) throws IllegalArgumentException, URISyntaxException { + public static URI getURIDirname(URI uri) throws IllegalArgumentException, URISyntaxException { if(null == uri) { throw new IllegalArgumentException("URI is null"); } @@ -452,6 +452,25 @@ public class IOUtil { if( DEBUG ) { System.out.println("getURIDirname "+uri+", extForm: "+uriS); } + return new URI( getURIDirname(uriS) ); + } + + /** + * The URI's protocol:/some/path/gluegen-rt.jar + * parent dirname URI protocol:/some/path/ will be returned. + *

+ * protocol may be "file", "http", etc.. + *

+ * + * @param uri "protocol:/some/path/gluegen-rt.jar" + * @return "protocol:/some/path/" + * @throws IllegalArgumentException if the URI doesn't match the expected formatting, or is null + * @throws URISyntaxException + */ + public static String getURIDirname(String uriS) throws IllegalArgumentException, URISyntaxException { + if(null == uriS) { + throw new IllegalArgumentException("uriS is null"); + } // from // file:/some/path/gluegen-rt.jar _or_ rsrc:gluegen-rt.jar // to @@ -461,7 +480,7 @@ public class IOUtil { // no abs-path, check for protocol terminator ':' idx = uriS.lastIndexOf(':'); if(0 > idx) { - throw new IllegalArgumentException("URI does not contain protocol terminator ':', in <"+uri+">"); + throw new IllegalArgumentException("URI does not contain protocol terminator ':', in <"+uriS+">"); } } uriS = uriS.substring(0, idx+1); // exclude jar name, include terminal '/' or ':' @@ -469,7 +488,7 @@ public class IOUtil { if( DEBUG ) { System.out.println("getJarURIDirname res: "+uriS); } - return new URI(uriS); + return uriS; } /** -- cgit v1.2.3