Skip to content

Commit f69bd5e

Browse files
committed
the packageURL is startWith 'file:' when client is a file in target (unit test)
1 parent de71d98 commit f69bd5e

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

util/src/main/java/io/kubernetes/client/util/ModelMapper.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -486,17 +486,26 @@ private static List<String> getClassNamesFromPackage(ClassLoader classLoader, St
486486

487487
private static void processJarPackage(URL packageURL, String packageName, String pkg, ArrayList<String> names) throws IOException {
488488
String jarFileName = URLDecoder.decode(packageURL.getFile(), "UTF-8");
489-
if (!jarFileName.startsWith("jar:") && !jarFileName.startsWith("nested:")) {
489+
JarFile jf = null;
490+
// jar: client in repository; nested: client in a fat jar
491+
if (jarFileName.startsWith("jar:") || jarFileName.startsWith("nested:")) {
492+
jf = ((JarURLConnection) packageURL.openConnection()).getJarFile();
493+
}
494+
// file: client is a file in target (unit test)
495+
if (jarFileName.startsWith("file:") ) {
496+
jarFileName = jarFileName.substring(5, jarFileName.indexOf("!"));
497+
jf = new JarFile(jarFileName);
498+
}
499+
if (jf == null) {
490500
logger.error("Loading classes from jar with error packageURL: {}", jarFileName);
491501
return;
492502
}
493503
logger.info("Loading classes from jar {}", jarFileName);
494-
try (JarFile jf = ((JarURLConnection) packageURL.openConnection()).getJarFile()) {
495-
Enumeration<JarEntry> jarEntries = jf.entries();
496-
while (jarEntries.hasMoreElements()) {
497-
processJarEntry(jarEntries.nextElement(), packageName, pkg, names);
498-
}
504+
Enumeration<JarEntry> jarEntries = jf.entries();
505+
while (jarEntries.hasMoreElements()) {
506+
processJarEntry(jarEntries.nextElement(), packageName, pkg, names);
499507
}
508+
jf.close();
500509
}
501510

502511
private static void processJarEntry(JarEntry jarEntry, String packageName, String pkg, ArrayList<String> names) {

0 commit comments

Comments
 (0)