From bef836e5a899ec43b382db2d5ed0cd3f49fb7ebf Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 2 Feb 2005 17:47:15 +0300 Subject: [PATCH] fixed: plugin classes are not found if plugin classpath contains non-canonical paths --- source/com/intellij/ide/plugins/PluginManager.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/com/intellij/ide/plugins/PluginManager.java b/source/com/intellij/ide/plugins/PluginManager.java index 1fa2a9fd9bb0..bfd60c3f47c2 100644 --- a/source/com/intellij/ide/plugins/PluginManager.java +++ b/source/com/intellij/ide/plugins/PluginManager.java @@ -18,6 +18,7 @@ import sun.reflect.Reflection; import javax.swing.*; import java.io.File; import java.io.InputStream; +import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -409,13 +410,17 @@ public class PluginManager { try { final List urls = new ArrayList(classPath.length); for (int idx = 0; idx < classPath.length; idx++) { - urls.add(classPath[idx].toURL()); + final File file = classPath[idx].getCanonicalFile(); // it is critical not to have "." and ".." in classpath elements + urls.add(file.toURL()); } return new PluginClassLoader(urls, parentLoaders, pluginName, pluginRoot); } catch (MalformedURLException e) { e.printStackTrace(); } + catch (IOException e) { + e.printStackTrace(); + } return null; }