diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginClassManager.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginClassManager.java index a31596bd54..9cb7b5c66c 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginClassManager.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginClassManager.java @@ -199,6 +199,12 @@ public class PluginClassManager { includedClasses.add(excludedClassName); } + if (!PluginPackage.exists(packageName)) { + Msg.warn(this, "Unable to find plugin pacakge '" + packageName + + "' while restoring plugins from xml"); + continue; + } + PluginPackage pluginPackage = PluginPackage.getPluginPackage(packageName); List pluginDescriptionList = packageMap.get(pluginPackage); if (pluginDescriptionList == null) { diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginPackage.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginPackage.java index 61024f8ceb..8d2979be3e 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginPackage.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/util/PluginPackage.java @@ -35,6 +35,25 @@ public abstract class PluginPackage implements ExtensionPoint, Comparable packageMap; + /** + * Returns true if the system has found a plugin package for the given name + * @param packageName the package name + * @return true if the system has found a plugin package for the given name + */ + public static boolean exists(String packageName) { + if (packageMap == null) { + packageMap = createPackageMap(); + } + PluginPackage pluginPackage = packageMap.get(packageName.toLowerCase()); + return pluginPackage != null; + } + + /** + * Returns the existing plugin package with the given name. If no package exists, then the + * {@link MiscellaneousPluginPackage} will be returned. + * @param packageName the package name + * @return the package + */ public static PluginPackage getPluginPackage(String packageName) { if (packageMap == null) { packageMap = createPackageMap();