diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index 71370d4cdd24751023ac9ca60dbf7f897cadb4b9..e35d03ba8d41fe2409bdbc5cd38330a32987df1a 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -501,10 +501,10 @@ public class PluginWrapper implements Comparable, ModelObject { } if (!missingDependencies.isEmpty()) - throw new IOException("Dependency "+Util.join(missingDependencies, ", ")+" doesn't exist"); + throw new MissingDepencyException("Dependency "+Util.join(missingDependencies, ", ")+" doesn't exist", missingDependencies); if (!incompatibleDependencies.isEmpty()) - throw new IOException("Dependency "+Util.join(incompatibleDependencies, ", ")+" doesn't match required version"); + throw new IncompatibleDependencyException("Dependency "+Util.join(incompatibleDependencies, ", ")+" doesn't match required version", incompatibleDependencies); } @@ -646,4 +646,21 @@ public class PluginWrapper implements Comparable, ModelObject { private static final Logger LOGGER = Logger.getLogger(PluginWrapper.class.getName()); + public class IncompatibleDependencyException extends IOException { + public final List plugins; + + public IncompatibleDependencyException(String message, List plugins) { + super(message); + this.plugins = plugins; + } + } + + public class MissingDepencyException extends IOException { + public final List plugins; + + public MissingDepencyException(String message, List plugins) { + super(message); + this.plugins = plugins; + } + } }