From dcabc47620003f846c47ac00bd8f0041dad507ee Mon Sep 17 00:00:00 2001 From: Michael Renz Date: Thu, 23 Jul 2015 15:28:05 +0200 Subject: [PATCH] * Replaced new JarFile() with JarUrlConnection. This solves access problems in case the jar is accessed through a web servicey. --- src/main/java/org/lightcouch/CouchDbUtil.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/lightcouch/CouchDbUtil.java b/src/main/java/org/lightcouch/CouchDbUtil.java index 9cbcbaf..39301e9 100644 --- a/src/main/java/org/lightcouch/CouchDbUtil.java +++ b/src/main/java/org/lightcouch/CouchDbUtil.java @@ -23,6 +23,7 @@ import java.io.InputStream; import java.net.URL; import java.net.URLDecoder; +import java.net.JarURLConnection; import java.util.ArrayList; import java.util.Arrays; import java.util.Enumeration; @@ -117,8 +118,8 @@ public static List listResources(String path) { return Arrays.asList(new File(dirURL.toURI()).list()); } if (dirURL != null && dirURL.getProtocol().equals("jar")) { - String jarPath = dirURL.getPath().substring(5, dirURL.getPath().indexOf("!")); - JarFile jar = new JarFile(URLDecoder.decode(jarPath, "UTF-8")); + JarURLConnection jarConn = (JarURLConnection)dirURL.openConnection(); + JarFile jar = jarConn.getJarFile(); Enumeration entries = jar.entries(); Set result = new HashSet(); while(entries.hasMoreElements()) { @@ -134,7 +135,7 @@ public static List listResources(String path) { } } } - close(jar); + jar.close(); return new ArrayList(result); } return null;