From 6351a8a25826679a69648e772e163dafdfc5cae3 Mon Sep 17 00:00:00 2001 From: Felix Belzunce Arcos Date: Mon, 22 Dec 2014 23:58:09 +0100 Subject: [PATCH] JENKINS-26203 --- .../java/hudson/ClassicPluginStrategy.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index 75d1414acc..b295de6405 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -56,6 +56,8 @@ import java.io.FileInputStream; import java.io.FilenameFilter; import java.io.IOException; import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; @@ -147,8 +149,8 @@ public class ClassicPluginStrategy implements PluginStrategy { @Override public PluginWrapper createPluginWrapper(File archive) throws IOException { final Manifest manifest; - URL baseResourceURL; + URL baseResourceURL = null; File expandDir = null; // if .hpi, this is the directory where war is expanded @@ -197,7 +199,21 @@ public class ClassicPluginStrategy implements PluginStrategy { if (libs != null) paths.addAll(Arrays.asList(libs)); - baseResourceURL = expandDir.toURI().toURL(); + try { + Class pathJDK7 = Class.forName("java.nio.file.Path"); + Object toPath = File.class.getMethod("toPath").invoke(expandDir); + URI uri = (URI) pathJDK7.getMethod("toUri").invoke(toPath); + + baseResourceURL = uri.toURL(); + } catch (NoSuchMethodException e) { + throw new Error(e); + } catch (ClassNotFoundException e) { + baseResourceURL = expandDir.toURI().toURL(); + } catch (InvocationTargetException e) { + throw new Error(e); + } catch (IllegalAccessException e) { + throw new Error(e); + } } File disableFile = new File(archive.getPath() + ".disabled"); if (disableFile.exists()) { -- GitLab